src/EventSubscriber/ParrainSubscriber.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use DateInterval;
  4. use DateTime;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. class ParrainSubscriber implements EventSubscriberInterface
  10. {
  11.     private $session;
  12.     public function __construct(SessionInterface $session)
  13.     {
  14.         $this->session $session;
  15.     }
  16.     public function onKernelController(ControllerEvent $event)
  17.     {
  18.         $controller $event->getController();
  19.         if (is_array($controller)) {
  20.             $controller $controller[0];
  21.         }
  22.         $token $event->getRequest()->get('token');
  23.         if($token != null){
  24.             $dateExpiration = new DateTime();
  25.             $dateExpiration->add(new DateInterval('PT1H'));
  26.             $this->session->set('parrain'$token);
  27.             $this->session->set('dateExpirationParrain'$dateExpiration->format("Y-m-d-H-i-s"));
  28.         }
  29.     }
  30.     public static function getSubscribedEvents()
  31.     {
  32.         return [
  33.             KernelEvents::CONTROLLER => 'onKernelController',
  34.         ];
  35.     }
  36. }