我想获得错误页面(在应用程序出现异常之后),而不是测试环境中的调试页面。
我跟踪了 Twig Bundle 代码,答案在 findTemplate() 方法的Symfony\Bundle\TwigBundle\Controller\ExceptionController类中。在这里,我复制了负责选择模板的代码片段。
$name = $debug ? 'exception' : 'error';
if ($debug && 'html' == $format) {
$name = 'exception_full';
}
这段代码没有问题。关键是我无法为我的测试环境将 ExceptionController $debug变量设置为 false。
根据TwigBundle 配置参考,在config_test.yml中将调试参数设置为 false 就足够了。
twig:
debug: false
这是行不通的。
我浏览了 Symfony 代码并在vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml上找到了这个片段配置。
<service id="twig.controller.exception" class="%twig.controller.exception.class%">
<argument type="service" id="twig" />
<argument>%kernel.debug%</argument>
</service>
因此,无论我在配置文件上设置什么,调试变量值都不会被修改。
你怎么看待这件事?
我正在使用 Symfony 2.2.1,这个问题与其他问题有点相关。