<?php
namespace App\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use App\Repository\CraNotificationRepository;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Core\Security;
class OnloadController implements EventSubscriberInterface
{
/**
* @var Security
*/
private $security;
/**
* @var CraNotificationRepository
*/
private $craNotificationRepository;
/**
* @var RequestStack
*/
private $request;
/**
* @param Security $security
* @param RequestStack $request
* @param CraNotificationRepository $craNotificationRepository
*/
public function __construct(Security $security, RequestStack $request, CraNotificationRepository $craNotificationRepository)
{
$this->security = $security;
$this->craNotificationRepository = $craNotificationRepository;
$this->request = $request;
}
/**
* @param RequestEvent $event
* @return void
*/
public function onKernelRequest(RequestEvent $event)
{
if ($this->security->isGranted('IS_AUTHENTICATED_FULLY')) {
$session = $this->request->getSession();
$craNotificationByStatus = $this->craNotificationRepository->findByStatus(0);
$session->set('CraNotifList', count($craNotificationByStatus));
}
}
/**
* @return string[]
*/
public static function getSubscribedEvents()
{
return [
RequestEvent::class => 'onKernelRequest'
];
}
}