src/EventListener/CouponCodeListener.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventListener;
  4. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. class CouponCodeListener
  7. {
  8.     private $session;
  9.     public function __construct(SessionInterface $session)
  10.     {
  11.         $this->session $session;
  12.     }
  13.     public function onKernelRequest(RequestEvent $event)
  14.     {
  15.         // Check if the request is a master request (HTTP request)
  16.         if (!$event->isMainRequest()) {
  17.             return;
  18.         }
  19.         $request $event->getRequest();
  20.         // Exclude requests with path starting with /admin
  21.         if (strpos($request->getPathInfo(), '/admin') === 0) {
  22.             return;
  23.         }
  24.         $couponCode $request->query->get('ref');
  25.         if ($couponCode) {
  26.             $this->session->set('couponCode'$couponCode);
  27.         }
  28.     }
  29. }