/** * {@inheritdoc} */ protected function postDispatch($eventName, Event $event) { switch ($eventName) { case KernelEvents::CONTROLLER: $this->stopwatch->start('controller', 'section'); break; case KernelEvents::RESPONSE: $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); break; case KernelEvents::TERMINATE: // In the special case described in the `preDispatch` method above, the `$token` section // does not exist, then closing it throws an exception which must be caught. $token = $event->getResponse()->headers->get('X-Debug-Token'); try { $this->stopwatch->stopSection($token); } catch (\LogicException $e) { } break; } }
/** * filter the `core.response` event to decorated the action * * @param \Symfony\Component\EventDispatcher\Event $event * @return \Symfony\Component\HttpFoundation\Response */ public function onCoreResponse(Event $event) { $response = $event->getResponse(); $requestType = $event->getRequestType(); $request = $event->getRequest(); if ($this->isDecorable($request, $requestType, $response)) { $page = $this->defineCurrentPage($request); // only decorate hybrid page and page with decorate = true if ($page && $page->isHybrid() && $page->getDecorate()) { $parameters = array('content' => $response->getContent()); $response = $this->renderPage($page, $parameters, $response); } } return $response; }
/** * {@inheritdoc} */ public function dispatch($eventName, Event $event = null) { switch ($eventName) { case 'kernel.request': $this->stopwatch->openSection(); break; case 'kernel.view': case 'kernel.response': // stop only if a controller has been executed try { $this->stopwatch->stop('controller'); } catch (\LogicException $e) { } break; case 'kernel.terminate': $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->openSection($token); break; } $e1 = $this->stopwatch->start($eventName, 'section'); parent::dispatch($eventName, $event); $e1->stop(); switch ($eventName) { case 'kernel.controller': $this->stopwatch->start('controller', 'section'); break; case 'kernel.response': $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { // The profiles can only be updated once they have been created // that is after the 'kernel.response' event of the main request $this->updateProfiles($token, true); } break; case 'kernel.terminate': $this->stopwatch->stopSection($token); // The children profiles have been updated by the previous 'kernel.response' // event. Only the root profile need to be updated with the 'kernel.terminate' // timing informations. $this->updateProfiles($token, false); break; } return $event; }
/** * {@inheritdoc} */ public function dispatch($eventName, Event $event = null) { switch ($eventName) { case 'kernel.request': $this->stopwatch->openSection(); break; case 'kernel.view': case 'kernel.response': // stop only if a controller has been executed try { $this->stopwatch->stop('controller'); } catch (\LogicException $e) { } break; case 'kernel.terminate': $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->openSection($token); break; } $e1 = $this->stopwatch->start($eventName, 'section'); parent::dispatch($eventName, $event); $e1->stop(); switch ($eventName) { case 'kernel.controller': $this->stopwatch->start('controller', 'section'); break; case 'kernel.response': $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); $this->updateProfile($token); break; case 'kernel.terminate': $this->stopwatch->stopSection($token); $this->updateProfile($token); break; } return $event; }
private function postDispatch($eventName, Event $event) { switch ($eventName) { case KernelEvents::CONTROLLER: $this->stopwatch->start('controller', 'section'); break; case KernelEvents::RESPONSE: $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { // The profiles can only be updated once they have been created // that is after the 'kernel.response' event of the main request $this->updateProfiles($token, true); } break; case KernelEvents::TERMINATE: $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); // The children profiles have been updated by the previous 'kernel.response' // event. Only the root profile need to be updated with the 'kernel.terminate' // timing informations. $this->updateProfiles($token, false); break; } foreach ($this->wrappedListeners[$this->id] as $wrapped) { $this->dispatcher->removeListener($eventName, $wrapped); $this->dispatcher->addListener($eventName, $this->wrappedListeners[$this->id][$wrapped]); } unset($this->wrappedListeners[$this->id]); }
private function postDispatch($eventName, $eventId, Event $event) { switch ($eventName) { case KernelEvents::CONTROLLER: $this->stopwatch->start('controller', 'section'); break; case KernelEvents::RESPONSE: $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { // The profiles can only be updated once they have been created // that is after the 'kernel.response' event of the main request $this->updateProfiles($token, true); } break; case KernelEvents::TERMINATE: $token = $event->getResponse()->headers->get('X-Debug-Token'); // In the special case described in the `preDispatch` method above, the `$token` section // does not exist, then closing it throws an exception which must be caught. try { $this->stopwatch->stopSection($token); } catch (\LogicException $e) { } // The children profiles have been updated by the previous 'kernel.response' // event. Only the root profile need to be updated with the 'kernel.terminate' // timing information. $this->updateProfiles($token, false); break; } foreach ($this->wrappedListeners[$eventId] as $wrapped) { $this->dispatcher->removeListener($eventName, $wrapped); $this->dispatcher->addListener($eventName, $this->wrappedListeners[$eventId][$wrapped]); } unset($this->wrappedListeners[$eventId]); }
public function onResponse(Event $event) { $response = $event->getResponse(); /* @var $response \Symfony\Component\HttpFoundation\Response */ $session = $event->getRequest()->getSession(); /* @var $session \Symfony\Component\HttpFoundation\Session */ $response->headers->setCookie(new Cookie('locale', $session->get('localeIdentified'))); if (null !== $this->logger) { $this->logger->info(sprintf('Locale Cookie set to: [ %s ]', $session->get('localeIdentified'))); } }
private function postDispatch($eventName, $eventId, Event $event) { switch ($eventName) { case KernelEvents::CONTROLLER: $this->stopwatch->start('controller', 'section'); break; case KernelEvents::RESPONSE: $token = $event->getResponse()->headers->get('X-Debug-Token'); $this->stopwatch->stopSection($token); break; case KernelEvents::TERMINATE: // In the special case described in the `preDispatch` method above, the `$token` section // does not exist, then closing it throws an exception which must be caught. $token = $event->getResponse()->headers->get('X-Debug-Token'); try { $this->stopwatch->stopSection($token); } catch (\LogicException $e) { } break; } foreach ($this->wrappedListeners[$eventId] as $wrapped) { $this->dispatcher->removeListener($eventName, $wrapped); $this->dispatcher->addListener($eventName, $this->wrappedListeners[$eventId][$wrapped]); } unset($this->wrappedListeners[$eventId]); }