Я написал свой ExceptionController и хотите вставить токен отладки как часть вывода.
Я посмотрел на WebProfilerToolbarListener, что похоже на мой случай, но похоже, что ответ на исключение / ошибку имеет другой жизненный цикл.
ProfilerCollector всегда вызывается после моего слушателя, который находится на ответном событии.
Мой слушатель должен быть вызван после ProfilerCollector.
Как мне этого добиться?
Я пытался использовать разные приоритеты, но, похоже, вам необходимо очистить кэш полностью. Недостаточно перезагрузить страницу в режиме разработки.
После изменения приоритета на -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