Whenever I am getting error like Fatal error: Call to a member function getName() on a non-object in /var/www/...Controller.php on line 143, My symfony2-app shows a blank page in prod-environment. The above message available in dev-environment. I want to show a custom page in prod-environment for such errors. How can I implement it in Symfony2?
Update:
May kernel.event_listener help me?
You cannot really implement that in symfony. Fatal errors are not handled by symfony but by the PHP extension itself. The Symfony code never gets a chance to finish executing because of the fatal error leaving php to handle the error by its own devices. PHP error handling is set by error_reporting() and the error_handler set by set_error_handler(). In the dev environment, php error reporting is set to E_ALL to show all errors. In a production environment, errors and debug messages are set to 0 and are not displayed for aesthetic and security reasons (some error messages may display password, etc). The best advice would be to fix all fatal errors before deploying to production. To catch and display a custom page for fatal errors must be done using php set error handling – http://php.net/manual/en/function.set-error-handler.php.
For non-fatal errors, you can create a custom error page view that can be displayed – http://symfony.com/doc/2.0/cookbook/controller/error_pages.html