Как получить токен отладки при исключении?

Я написал свой ExceptionController и хотите вставить токен отладки как часть вывода.
Я посмотрел на WebProfilerToolbarListener, что похоже на мой случай, но похоже, что ответ на исключение / ошибку имеет другой жизненный цикл.

ProfilerCollector всегда вызывается после моего слушателя, который находится на ответном событии.
Мой слушатель должен быть вызван после ProfilerCollector.

Как мне этого добиться?

введите описание изображения здесь

3

Решение

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

После изменения приоритета на -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),
);
}
1

Другие решения

Вы должны играть с приоритетами слушателя: я думаю, у вас есть RequestDataCollector слушатель, который имеет priority: 0, вы должны сделать это больше.

Или, другими словами, сделать приоритет вашего слушателя -1

Подробнее о приоритете слушателя

0

По вопросам рекламы [email protected]