События Symfony - как не запускать события ядра при помощи Profiler или разминки - PullRequest
0 голосов
/ 15 мая 2019

Проект Symfony v3.4, с несколькими определенными слушателями / подписчиками, для различных целей. Они подключены к событиям kernel.request и kernel.controller.

Я заметил, что все они также запускаются любыми запросами, сделанными инструментом профилирования Symfony, а также в случаях, когда Symfony нагревает кэш кода.

Должно ли это быть действительно так? Есть ли хороший способ НЕ запускать определенные события ядра. * (По крайней мере, конкретные), когда запрос страницы поступает от Profiler? Как лучше всего это сделать?

Что касается исключения этих событий при разминке - я считаю, что разминка была бы быстрее, если бы она не выполняла все подключения и т. Д., Поэтому развитие было бы немного быстрее.

Я видел здесь ранее задаваемые вопросы с самоответом: Как запретить профилировщику Symfony доступ или выполнение прослушивателя , но в моем случае использования это кажется слишком большой работой - изменение всех существующие контроллеры в системе. Кроме того, другие предлагаемые комментарии / патчи не кажутся действительно хорошим способом справиться с этим. Спасибо за понимание.

1 Ответ

0 голосов
/ 15 мая 2019

К сожалению, это невозможно, поскольку WebProfilerBundle зависит от системы событий Symfony

Поскольку профилировщик маршрутов начинается с префикса _, вы можете игнорировать его с помощью:

$route = $event->getRequest()->attributes->get('_route');
if (strpos($route, '_') === 0) {
    return;
}
  _twig_error_test              ANY      ANY      ANY    /_error/{code}.{_format}           
  _wdt                          ANY      ANY      ANY    /_wdt/{token}                      
  _profiler_home                ANY      ANY      ANY    /_profiler/                        
  _profiler_search              ANY      ANY      ANY    /_profiler/search                  
  _profiler_search_bar          ANY      ANY      ANY    /_profiler/search_bar              
  _profiler_phpinfo             ANY      ANY      ANY    /_profiler/phpinfo                 
  _profiler_search_results      ANY      ANY      ANY    /_profiler/{token}/search/results  
  _profiler_open_file           ANY      ANY      ANY    /_profiler/open                    
  _profiler                     ANY      ANY      ANY    /_profiler/{token}                 
  _profiler_router              ANY      ANY      ANY    /_profiler/{token}/router          
  _profiler_exception           ANY      ANY      ANY    /_profiler/{token}/exception       
  _profiler_exception_css       ANY      ANY      ANY    /_profiler/{token}/exception.css 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...