protected function TraceableEventDispatcher::preDispatch in Zircon Profile 8
Same name in this branch
- 8 vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php \Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher::preDispatch()
- 8 vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher::preDispatch()
Same name and namespace in other branches
- 8.0 vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php \Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher::preDispatch()
Called before dispatching the event.
Parameters
string $eventName The event name:
Event $event The event:
Overrides TraceableEventDispatcher::preDispatch
File
- vendor/
symfony/ http-kernel/ Debug/ TraceableEventDispatcher.php, line 47
Class
- TraceableEventDispatcher
- Collects some data about event listeners.
Namespace
Symfony\Component\HttpKernel\DebugCode
protected function preDispatch($eventName, Event $event) {
switch ($eventName) {
case KernelEvents::REQUEST:
$this->stopwatch
->openSection();
break;
case KernelEvents::VIEW:
case KernelEvents::RESPONSE:
// stop only if a controller has been executed
if ($this->stopwatch
->isStarted('controller')) {
$this->stopwatch
->stop('controller');
}
break;
case KernelEvents::TERMINATE:
$token = $event
->getResponse()->headers
->get('X-Debug-Token');
// There is a very special case when using built-in AppCache class as kernel wrapper, in the case
// of an ESI request leading to a `stale` response [B] inside a `fresh` cached response [A].
// In this case, `$token` contains the [B] debug token, but the open `stopwatch` section ID
// is equal to the [A] debug token. Trying to reopen section with the [B] token throws an exception
// which must be caught.
try {
$this->stopwatch
->openSection($token);
} catch (\LogicException $e) {
}
break;
}
}