如何在生产中禁用Symfony2中的分析器?
我不是指工具栏 – 我的意思是分析器.
我想在生产中禁用它,我广泛地用于开发,所以删除它的包的解决方案是一个不用去.
我已经尝试将framework.profiler.only_exceptions设置为true.我已经尝试删除framework.profiler部分.无论profiler.db在每个请求后增长,每个响应都包含x-debug-token标头.
我已经仔细检查了配置文件(config.yml和config_prod.yml),一切似乎都被罚款.
命令应用程序/控制台路由器还有什么:dump-apache –no-debug总是转储_wdt和_profiler路由,但是我在route_prod.yml中没有这些路由,并且在尝试访问时似乎不存在他们从浏览器(404).
我正在运行symfony 2.0,现在我不会升级,因为2.1中的一些重大变化,需要重写许多元素.在初始部署之前启动它是不明智的.
Symfony< = 2.1 在Symfony< = 2.1中,如果配置中没有framework.profilerkey,则概要分析器将被完全禁用. 您可以在Symfony2 FrameworkBundle配置的
ProfilerPass中看到这一点.
这是默认的config.yml和config_prod.yml(包括前者)的情况.所以如果你没有修改默认配置,你没事.
但是在config_dev.yml中,默认设置为:
framework: profiler: { only_exceptions: false }
其中启用对开发环境的分析和导入config_dev.yml的所有环境,如config_test.yml.
如果要在后续配置中取消设置分析器值,请使用:
framework: profiler: false
像{}或〜这样的值不会取消设置值.你必须使用false.
Symfony 2.2
在撰写这个答案时,Symfony 2.2的上述陈述也是如此.但是,分析器现在支持配置中的已启用标志,并且在测试环境中默认禁用.
# app/config/config_test.yml framework: profiler: enabled: false
有关更多详情,请参阅Fabien Potencier的Blog entry about Profiling.