src/Event/RequestSubscriber.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Event;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  8. class RequestSubscriber implements EventSubscriberInterface
  9. {
  10.     use TargetPathTrait;
  11.     private $session;
  12.     public function __construct(SessionInterface $session)
  13.     {
  14.         $this->session $session;
  15.     }
  16.     public function onKernelRequest(RequestEvent $event): void
  17.     {
  18.         $request $event->getRequest();
  19.         if (
  20.             !$event->isMasterRequest()
  21.             || $request->isXmlHttpRequest()
  22.             || 'app_login' === $request->attributes->get('_route')
  23.         ) {
  24.             return;
  25.         }
  26.         $this->saveTargetPath($this->session'main'$request->getUri());
  27.     }
  28.     public static function getSubscribedEvents(): array
  29.     {
  30.         return [
  31.             KernelEvents::REQUEST => ['onKernelRequest']
  32.         ];
  33.     }
  34. }