如何禁用 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 的中间件上禁用日志“信息”?

为啥 Symfony 调试工具栏中的计时器(分析器)超过 100% 时间?

如何在 symfony2 中禁用某些路由的监听器?