【问题标题】:Symfony, implement webserver for mobile app, desktop app, and websiteSymfony,为移动应用、桌面应用和网站实现网络服务器
【发布时间】:2015-02-18 16:12:42
【问题描述】:

我已经有一个移动应用程序,它可以从数据库中检索一些数据,通过对数据库执行查询的 php 脚本将其显示给用户,然后将带有结果的 json 返回到我的应用程序。

我还有一个桌面应用程序,它使用其他 php 脚本来检索同一数据库上的数据,下一步也是实现一个网站。

现在我认为我的应用支持的每个操作都有一个脚本并不是最佳实践,所以我决定使用 Symfony 框架来更好地组织我的服务器脚本。

现在我已经创建了一个新的 PHP Symfony 项目,在 localhost 上复制了我的数据库,为 db 操作生成了一个包,映射了 sql 表,生成了实体,并为每个实体生成了一个 crud 控制器。

现在我不知道该怎么做。

如何让我的项目为每个操作只返回 json 消息(而不是默认情况下返回结果的 html 页面)?

【问题讨论】:

    标签: php json symfony


    【解决方案1】:

    您必须在操作结束时返回 json 字符串!

    例如

    public function ajaxAction(Request $request){
    
        //get some data from doctrine, do other stuff
    
        //generate a json string from it and return it
    
        $json = json_encode($data);
        $response = new Response($json, 200);
        $response->headers->set('Content-Type', 'application/json');
        return $response;
    }
    

    现在您执行该操作的 Route 只返回 json 字符串!

    【讨论】:

    • 所以当我部署网站时(可能我会买一个模板),我只需要调用链接获取数据,然后解析json?对于这种情况,这是一个好习惯吗?
    • @giozh 是的,您只需要调用链接。调用链接的站点只需要解析 json 并处理来自链接的数据。这只不过是一个普通的 API 实现。这是最佳实践方案,因为 json 是轻量级的,几乎所有编程语言都易于解析。只有 xml 可以被更多语言读取,但是 xml 的开销更大。
    猜你喜欢
    • 2019-12-10
    • 2019-03-07
    • 2012-06-28
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多