Symfony2中的用户友好错误页面

Hab*_*wad 1 exception-handling symfony

每当我收到错误时Fatal error: Call to a member function getName() on a non-object in /var/www/...Controller.php on line 143,我的symfony2-app会在prod-environment中显示一个空白页面.以上消息在dev-environment中可用.我想在prod-environment中显示这样的错误的自定义页面.如何在Symfony2中实现它?

更新:可以kernel.event_listener帮帮我吗?

Pre*_*ays 5

你无法在symfony中真正实现它.symfony不会处理致命错误,而是由PHP扩展本身处理.Symfony代码永远不会有机会完成执行,因为致命错误让php通过自己的设备处理错误.PHP错误处理由error_reporting()set_error_handler()设置的error_handler设置.在开发环境中, php错误报告设置为E_ALL以显示所有错误.在生产环境中,错误和调试消息设置为0,并且出于美观和安全原因而不显示(某些错误消息可能显示密码等).最好的建议是在部署到生产之前修复所有致命错误.要捕获并显示致命错误的自定义页面必须使用php set错误处理 - http://php.net/manual/en/function.set-error-handler.php.

对于非致命错误,您可以创建可显示的自定义错误页面视图 - http://symfony.com/doc/2.0/cookbook/controller/error_pages.html