src/EventSubscriber/RequestSubscriber.php line 24

Open in your IDE?
  1. <?php
  2. // src/EventSubscriber/RequestSubscriber.php
  3. namespace App\EventSubscriber;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  9. use Symfony\Component\HttpFoundation\RedirectResponse;
  10. class RequestSubscriber implements EventSubscriberInterface
  11. {
  12.     use TargetPathTrait;
  13.     private $session;
  14.     public function __construct(SessionInterface $session)
  15.     {
  16.         $this->session $session;
  17.     }
  18.     public function onKernelRequest(RequestEvent $event)
  19.     {
  20.         $request $event->getRequest();
  21.         
  22.         if('app_login' === $request->attributes->get('_route') || 'app_logout' === $request->attributes->get('_route')) {
  23.             return;
  24.         }
  25.         
  26.         //TODO-AL-NP : inserire domini np
  27.         if(in_array($request->getHost(), ['testannonceslegales.lagazettefrance.fr''test.annonceslegales.pro','annonceslegales.lagazettefrance.fr''annonceslegales.pro'])) {
  28.             $arr explode("/"$request->getPathInfo());
  29.             if(count($arr) > && $arr[1] !== "al" && substr($arr[1], 0,1) !== "_" ) {
  30.                 $response = new RedirectResponse('https://'.$request->getHost().$request->getBaseUrl().'/al'.$request->getPathInfo());
  31.                 return $response->send();
  32.             } 
  33.         }
  34.                 
  35.         
  36.         if (!$event->isMasterRequest() || $request->isXmlHttpRequest() || 'app_login' === $request->attributes->get('_route')) {
  37.             return;
  38.         }
  39.         
  40.         $this->saveTargetPath($this->session'main'$request->getUri());
  41.     }
  42.     public static function getSubscribedEvents(): array
  43.     {
  44.         return [
  45.             KernelEvents::REQUEST => ['onKernelRequest']
  46.         ];
  47.     }
  48. }