Symfony2:仅在dev中显示细枝转储()

Symfony2:仅在dev中显示细枝转储(),symfony,twig,Symfony,Twig,在prod环境中使用twig dump()会出现以下错误: 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/..

在prod环境中使用twig dump()会出现以下错误:

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 }%
但这在prod中给出了相同的错误


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

这是正常行为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):


有良好的发展。这是正常的行为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):


拥有良好的开发能力。

在投入生产之前,您应该删除转储语句。但是,您应该在推送到生产环境之前删除转储语句。然而,