Как отключить панель профилировщика Symfony 2?

Он ничего не добавляет и замедляет работу страницы, и я хочу, чтобы он исчез. Не спрашивай. На веб-сайте мало информации о профилировщике и ничего в конфигурации приложения.


person Rudie    schedule 05.01.2012    source источник
comment
Он появляется только в dev и его так много, что замедляет работу страницы (в dev env): думаю, оно того не стоит ;)   -  person KingCrunch    schedule 04.01.2013


Ответы (8)


Этот параметр находится в app/config/config_dev.yml:

web_profiler:
    toolbar: true
    intercept_redirects: false
person Rudie    schedule 05.01.2012
comment
В качестве комментария для будущих разработчиков. Этот ответ является лучшим, если вы хотите ОТКЛЮЧИТЬ ПЕРЕСЫЛКИ в режиме разработки и иметь возможность отлаживать POST и так далее. Просто intercept_redirects: true и все заработает :D - person José Cabo; 14.05.2014

Дополнительно: если вы хотите отключить его для специального действия в вашем контроллере, используйте это:

if ($this->container->has('profiler'))
{
    $this->container->get('profiler')->disable();
}
person Besnik    schedule 18.09.2012
comment
Это было то, что я действительно искал. Необходимо отключить панель инструментов при создании и отображении pdf. панель инструментов выглядит довольно глупо в pdf :) - person NDM; 26.02.2015
comment
Чтобы по-прежнему получать вывод в /_profiler, но без панели инструментов, вы можете схитрить: $request->headers->add(array('X-Requested-With' => 'XMLHttpRequest')); Это потому, что в WebProfilerBundle/EventListener/WebDebugToolbarListener.php есть явная проверка этого перед внедрением панели инструментов. - person Radu C; 01.02.2016
comment
@Besnik, не могли бы вы также включить решение для SF3 и SF4. Это по этой ссылке symfony.com/doc/4.0/profiler/m я мог бы сделать это я сам, но, поскольку ваш ответ лучше всего указан, я думаю, что это более полезно здесь. - person Kaizoku Gambare; 31.01.2020

Если вы установите framework.profiler.collect в false в своем config.yml, панель профилировщика не будет отображаться (даже если для web_profiler.toolbar установлено значение true).

 framework:
    profiler:
        collect: false

Затем это позволяет вам выборочно активировать коллекторы в вашем коде вручную, например:

$this->container->get('profiler')->enable();

Документация здесь: http://symfony.com/doc/current/reference/configuration/framework.html#collect

person Tib    schedule 26.12.2013
comment
(Это противоположно одинаково правильному подходу, использованному в ответе @besnik.) - person Alex; 18.06.2016

Если вы создали новый проект Symfony начиная с Symfony 2.5, эти параметры устанавливаются в app/config/paramaters.yml

parameters:
    # ...
    debug_toolbar: true
    debug_redirects: false

Просто установите debug_toolbar на false.

person Adam Elsodaney    schedule 08.06.2014

Попробуй это

framework:
    profiler: { only_exceptions: true }

в твоем app/config/config_dev.yml

person cystbear    schedule 04.01.2013

Чтобы по-прежнему получать вывод в /_profiler, но без панели инструментов, вы можете схитрить:

$request->headers->add(array('X-Requested-With' => 'XMLHttpRequest'));

Это связано с тем, что в WebProfilerBundle/EventListener/WebDebugToolbarListener.php есть явная проверка этого перед внедрением панели инструментов.

person Radu C    schedule 01.02.2016

Если вы беспокоитесь о производительности - тогда вам не стоит запускать под dev. Dev также ограничивает кеширование и может использовать дополнительные пакеты.

Запустите в режиме prod и прогрейте кеш, прежде чем запускать тесты производительности.

person BillyBigPotatoes    schedule 05.04.2013
comment
Я не знаю, почему за это проголосовали, это правильная, полезная информация, которая отвечает на вопрос. - person NDM; 26.02.2015
comment
нет, это не отвечает на вопрос OP, если функциональность, предоставляемая профилировщиком, не нужна, то она ничего не делает, кроме как замедляет среду разработки. - person user3531149; 29.05.2015

Другой способ, который, по-видимому, отключает его, заключается в том, чтобы не иметь _dev в маршрутизации приложения.

Так что для меня при установке Symfony 2 битнами, просто слегка изменив app/conf/httpd-app.conf, это изменило бы программу:

RewriteBase /symfony/app_dev.php

to

RewriteBase /symfony/

и это не позволит панели инструментов появиться.

person phyatt    schedule 02.08.2015