Symfony 2 - 在测试环境中获取错误而不是调试页面/如何在测试环境中将调试设置为false(Twig ExceptionController)?

时间:2013-05-30 10:01:11

标签: symfony

我想获取错误页面(在删除应用程序的异常之后),而不是测试环境中的调试页面。

我已经跟踪了Twig Bundle代码,答案是在findTemplate()方法的 Symfony \ Bundle \ TwigBundle \ Controller \ ExceptionController 类中。 在这里,我复制了选择模板的代码的负责片段。

    $name = $debug ? 'exception' : 'error';
    if ($debug && 'html' == $format) {
        $name = 'exception_full';
    }

此代码没有问题。关键是我不能为我的测试环境将ExceptionController $ debug 变量设置为false。

基于TwigBundle Configuration Reference,在 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,这个问题与this other question有关。

1 个答案:

答案 0 :(得分:0)

这不是基于环境吗?

就像在app_dev.php中一样:

$kernel = new AppKernel('stag', TRUE); #TRUE = debug/dev mode on
$kernel = new AppKernel('stag', FALSE); #FALSE = debug/dev mode off