src/EventSubscriber/RenderedRouteSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  5. use Symfony\Component\HttpKernel\KernelEvents;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. class RenderedRouteSubscriber implements EventSubscriberInterface
  8. {
  9.     public const LAST_RENDERED_ROUTE 'last_rendered_route';
  10.     /** @var SessionInterface */
  11.     protected $requestStack;
  12.     protected $session;
  13.     /**
  14.      * KernelTerminateSubscriber constructor.
  15.      */
  16.     public function __construct(RequestStack $requestStack)
  17.     {
  18.         $this->requestStack $requestStack;
  19.         $this->session $this->requestStack->getSession();
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             KernelEvents::RESPONSE => 'storeRenderedRoute',
  25.         ];
  26.     }
  27.     public function storeRenderedRoute(ResponseEvent $event)
  28.     {
  29.         $request $event->getRequest();
  30.         if ($request->hasSession() && $request->isMethodSafe() && !$request->isXmlHttpRequest()) {
  31.             $this->session->set(self::LAST_RENDERED_ROUTE$request->get('_route'));
  32.         }
  33.     }
  34. }