Symfony2:只显示dev中的twig dump()

时间:2017-02-11 19:20:19

标签: symfony twig

使用twig dump()在我的prod环境中给出了这个错误:

request.CRITICAL: Uncaught PHP Exception Twig_Error_Syntax: 
"Unknown "dump" function." at /home/.../all-pages.html.twig line 70
{"exception":"[object] (Twig_Error_Syntax(code: 0): 
Unknown \"dump\" function. at /home/.../all-pages.html.twig:70)"}

现在我认为聪明并将dump()放在if语句中:

{% if app.debug %} // also tried {% if app.environment == 'dev' %}

    {{ dump(joe) }}

{% endif }%

但这会产生相同的错误。

如何在我的开发环境中使用dump()并在prod中忽略它?

1 个答案:

答案 0 :(得分:3)

这是正常行为。 dump()在开发环境中工作,因为在 AppKernel.php 文件中,有:

if (in_array($this->getEnvironment(), array('dev', 'test'))) {
    // Some code ...
    $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
}

您可以将此捆绑包保存在所有环境中,方法是将其添加到上面的 $ bundles 数组和 AppKernel.php

但请注意,这不是一个好习惯。如果需要,您还可以通过在 app.php (false => true)中更改此设置暂时启用调试模式:

$kernel = new AppKernel('prod', true);

有好的开发。