src/EventSubscriber/RequestSubscriber.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  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. }