如何禁用 Symfony 2 分析器栏?
Posted
技术标签:
【中文标题】如何禁用 Symfony 2 分析器栏?【英文标题】:How do I disable the Symfony 2 profiler bar? 【发布时间】:2012-02-03 17:11:37 【问题描述】:它没有添加任何东西,它使页面变慢,我希望它消失。不要问。网站上几乎没有关于分析器的内容,应用配置中也没有任何内容。
【问题讨论】:
它只出现在 dev 中,而且内容太多,这使得页面变慢(在 dev env 中):我认为这不值得;) 【参考方案1】:这个设置在app/config/config_dev.yml
:
web_profiler:
toolbar: true
intercept_redirects: false
【讨论】:
作为对未来开发者的评论。如果您想在开发模式下“禁用”重定向并能够调试 POST 等,这个答案是最好的。只需 intercept_redirects: true 即可:D【参考方案2】:附加:如果您想在控制器中为特殊操作禁用它而不是使用此:
if ($this->container->has('profiler'))
$this->container->get('profiler')->disable();
【讨论】:
这正是我真正要寻找的。生成和显示 pdf 时需要禁用工具栏。工具栏在 pdf 中看起来很傻 :) 要仍然在 /_profiler 中获得输出但没有工具栏,您可以作弊:$request->headers->add(array('X-Requested-With' => 'XMLHttpRequest'));
这是因为在 WebProfilerBundle/EventListener/WebDebugToolbarListener.php 中,在注入工具栏之前对此进行了明确的检查。跨度>
@Besnik,能否请您也包括 SF3 和 SF4 的解决方案。它在这个链接上symfony.com/doc/4.0/profiler/m我可以自己做,但最好参考你的答案,我认为这在这里更有用。【参考方案3】:
试试这个
framework:
profiler: only_exceptions: true
在你的app/config/config_dev.yml
【讨论】:
【参考方案4】:如果您担心性能 - 那么您不应该在 dev 下运行。 Dev 还限制了缓存并且可以引入额外的包。
在运行性能测试之前以 prod 模式运行并预热缓存。
【讨论】:
我不知道为什么这被否决了,这是解决问题的正确、有用的信息。 不,不是,它不回答 OP 的问题,如果探查器提供的功能不需要,那么它只会减慢开发环境的速度【参考方案5】:如果您在 config.yml 中将 framework.profiler.collect
设置为 false
,则不会显示分析器栏(即使 web_profiler.toolbar
设置为 true)。
framework:
profiler:
collect: false
这允许您在代码中手动选择性地激活收集器,如下所示:
$this->container->get('profiler')->enable();
此处的文档:http://symfony.com/doc/current/reference/configuration/framework.html#collect
【讨论】:
(这与@besnik 的回答中采用的同样有效的方法相反。)【参考方案6】:如果你从 Symfony 2.5 开始创建了一个新的 Symfony 项目,这些参数设置在app/config/paramaters.yml
parameters:
# ...
debug_toolbar: true
debug_redirects: false
只需将debug_toolbar
设置为false
。
【讨论】:
【参考方案7】:似乎禁用它的另一种方法是在应用程序的路由中没有_dev
。
所以对我而言,在 Symfony 2 的 bitnami 安装中,只需稍微更改 app/conf/httpd-app.conf
就会改变程序:
RewriteBase /symfony/app_dev.php
到
RewriteBase /symfony/
它会阻止工具栏出现。
【讨论】:
【参考方案8】:要仍然在 /_profiler 中获得输出但没有工具栏,您可以作弊:
$request->headers->add(array('X-Requested-With' => 'XMLHttpRequest'));
这是因为在 WebProfilerBundle/EventListener/WebDebugToolbarListener.php 中,在注入工具栏之前有一个明确的检查。
【讨论】:
【参考方案9】:Symfony 5.3.7
我在 web_profiler.yaml 中将工具栏的值更改为 false,并且工具栏被禁用了。
# app/config/packages/dev/web_profiler.yaml #
web_profiler:
toolbar: true --> Change to false
intercept_redirects: false
【讨论】:
以上是关于如何禁用 Symfony 2 分析器栏?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony 2 中 login_check 后禁用重定向
如何在事件订阅者中访问Symfony 3.3中的登录用户,而不会丢失Web分析器
Symfony HWIOAuthBundle - 如何禁用自动注销?
如何在 Symfony Messenger 的中间件上禁用日志“信息”?