仅在DEV env上显示例外。 Symfony2的

时间:2014-04-13 22:37:00

标签: symfony exception http-status-code-404

我没有遇到什么问题。 我已经覆盖app / Resources / TwigBundle / Resources / Exception中的所有html异常模板......

我的问题是,这些错误页面只会在开发环境中呈现。 说到产品,我会得到类似的东西:

http://i.stack.imgur.com/GHd7t.png

请帮帮我。

1 个答案:

答案 0 :(得分:1)

您可以通过注册监听kernel.view事件的服务来实现。

在你的service.yml:

your.kernel_listener:
    class: Your\AppBundle\EventListener\KernelListener
    arguments: [@kernel]
    tags:
        - { name: kernel.event_listener, event: kernel.view, method: onKernelView }

在你的类KernelListener中:

namespace Your\AppBundle\EventListener;    

use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
use Symfony\Component\HttpFoundation\Response;

class KernelListener
{
    private $kernel;

    public function __construct(Kernel $kernel)
    {
        $this->kernel = $kernel;
    }        

    public function onKernelView(GetResponseForControllerResultEvent $event)
    {
        if ($this->kernel->getEnvironment() == 'dev') {
            $result = $event->getControllerResult();
            $response = new Response(print_r($result, true), 200, array('Content-Type' => 'text/html'));
            $event->setResponse($response);
        }
    }
}

查看this guide