Как получить маркер отладки при исключении?
Я написал свой собственный контроллер исключений и хочу ввести токен отладки как часть вывода.
Я посмотрел на webprofilertoolbarlistener, который похож на мой случай, но кажется, что ответ на исключение/ошибку имеет другой жизненный цикл.
Коллектор профилей всегда вызывается после моего слушателя, который находится в событии ответа.
Мой слушатель должен быть вызван после Коллектора профилей.
Как я могу достичь этого?
2 answers
Я пытался использовать разные приоритеты, но, похоже, вам нужно полностью очистить кэш. Недостаточно перезагрузить страницу в режиме разработки.
После изменения приоритета на -150 как показано ниже, это работает.
profiler_link_listener:
class:Nerdhive\TheNetwork\TwigBundle\EventListener\ProfilerLinkListener
priority: -150
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
Вы можете получить маркер отладки, как показано ниже:
public function onKernelResponse(FilterResponseEvent $event)
{
$response = $event->getResponse();
$token = $response->headers->get('X-Debug-Token');
// Do here your stuff
}
В целом -129 также следует работать с документацией webdebugtoolbarlistener или :
public static function getSubscribedEvents()
{
return array(
KernelEvents::RESPONSE => array('onKernelResponse', -128),
);
}
Вы должны играть с приоритетами слушателей: я предполагаю, что у вас есть RequestDataCollector
слушатель, у которого есть priority: 0
, вы должны сделать его больше.
Или, другими словами, сделайте приоритет вашего слушателя -1