如何在symfony2中获取错误和堆栈跟踪作为JSON?

时间:2014-12-12 07:48:00

标签: php json symfony

在开发模式下,如果控制器出现严重问题,我会收到带有堆栈跟踪的错误消息。没关系。

但是,我当前的symfony2应用程序是其他应用程序使用的服务。在没有所有以视图为中心的html,css和java脚本的情况下,获取与JSON或其他结构化方式相同的信息会更方便。

我读了How to Customize Error Pages但我不明白如何配置symfony来发出JSON错误消息而不是HTML。

从提到的文档中我了解到已经存在exception.json.twig文件。如何告诉symfony使用此模板而不是exception.html.twig

2 个答案:

答案 0 :(得分:0)

很难给出答案,因为您链接到的Symfony文档几乎告诉您需要知道的一切。请注意:

“如果您的侦听器在GetResponseForExceptionEvent上调用setResponse(),则将停止事件传播并将响应发送到客户端。”

因此,如果您只是创建JSON响应并通过setResponse()进行设置,那么您应该全部设置。

答案 1 :(得分:0)

毕竟我将文件vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception.json.twig复制3次到app/Resources/TwigBundle/views/Exception并命名副本

  • error.html.twig
  • exception_full.html.twig
  • exception.html.twig

我不乐意复制框架代码,但毕竟它完成了工作。