src/AppBundle/EventListener/SessionBagListener.php line 22

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace AppBundle\EventListener;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class SessionBagListener implements EventSubscriberInterface
  9. {
  10.     public static function getSubscribedEvents(): array
  11.     {
  12.         return [
  13.             //run after Symfony\Component\HttpKernel\EventListener\SessionListener
  14.             KernelEvents::REQUEST => ['onKernelRequest'127],
  15.         ];
  16.     }
  17.     public function onKernelRequest(RequestEvent $event): void
  18.     {
  19.         if (!$event->isMainRequest()) {
  20.             return;
  21.         }
  22.         if ($event->getRequest()->attributes->get('_stateless'false)) {
  23.             return;
  24.         }
  25.         $session $event->getRequest()->getSession();
  26.         if ($session->isStarted()) {
  27.             return;
  28.         }
  29.         $bag = new AttributeBag('_wps');
  30.         $bag->setName('wps');
  31.         $session->registerBag($bag);
  32.     }
  33. }