src/EventSubscriber/RequestSubscriber.php line 27

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