【问题标题】:How do I disable the Symfony 2 profiler bar?如何禁用 Symfony 2 分析器栏?
【发布时间】:2012-02-03 17:11:37
【问题描述】:

它没有添加任何东西,它使页面变慢,我希望它消失。不要问。网站上几乎没有关于分析器的内容,应用配置中也没有任何内容。

【问题讨论】:

  • 它只出现在 dev 中,而且内容太多,这使得页面变慢(在 dev env 中):我认为这不值得;)

标签: debugging symfony profiler


【解决方案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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多