src/Presentation/Web/FrontOffice/Project/Event/Listener/RefreshContextOnRequest.php line 24

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Presentation\Web\FrontOffice\Project\Event\Listener;
  4. use App\Presentation\Web\FrontOffice\Common\Context;
  5. use App\Presentation\Web\FrontOffice\Common\Controller\AbstractFrontOfficeController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. /**
  9.  * Refreshes front office context based on request method.
  10.  */
  11. final class RefreshContextOnRequest
  12. {
  13.     private $context;
  14.     public function __construct(Context $context)
  15.     {
  16.         $this->context $context;
  17.     }
  18.     public function onKernelRequest(RequestEvent $requestEvent)
  19.     {
  20.         $isGetMethod Request::METHOD_GET === $requestEvent->getRequest()->getMethod();
  21.         $isFrontOfficeController is_subclass_of($requestEvent->getRequest()->attributes->get('_controller'),
  22.             AbstractFrontOfficeController::class
  23.         );
  24.         if ($isGetMethod && $isFrontOfficeController) {
  25.             $this->context->refresh();
  26.         }
  27.     }
  28. }