/**
  * {@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]);
 }