src/EventListener/OnloadController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use App\Repository\CraNotificationRepository;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Symfony\Component\Security\Core\Security;
  8. class OnloadController implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var Security
  12.      */
  13.     private $security;
  14.     /**
  15.      * @var CraNotificationRepository
  16.      */
  17.     private $craNotificationRepository;
  18.     /**
  19.      * @var RequestStack
  20.      */
  21.     private $request;
  22.     /**
  23.      * @param Security $security
  24.      * @param RequestStack $request
  25.      * @param CraNotificationRepository $craNotificationRepository
  26.      */
  27.     public function __construct(Security $securityRequestStack $requestCraNotificationRepository $craNotificationRepository)
  28.     {
  29.         $this->security $security;
  30.         $this->craNotificationRepository $craNotificationRepository;
  31.         $this->request $request;
  32.     }
  33.     /**
  34.      * @param RequestEvent $event
  35.      * @return void
  36.      */
  37.     public function onKernelRequest(RequestEvent $event)
  38.     {
  39.         if ($this->security->isGranted('IS_AUTHENTICATED_FULLY')) {
  40.             $session $this->request->getSession();
  41.             $craNotificationByStatus $this->craNotificationRepository->findByStatus(0);
  42.             $session->set('CraNotifList'count($craNotificationByStatus));
  43.         }
  44.     }
  45.     /**
  46.      * @return string[]
  47.      */
  48.     public static function getSubscribedEvents()
  49.     {
  50.         return [
  51.             RequestEvent::class => 'onKernelRequest'
  52.         ];
  53.     }
  54. }