src/Subscribers/LocalSubscriber.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Subscribers;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. class LocalSubscriber implements EventSubscriberInterface
  8. {
  9.     private $defaultLocale;
  10.     /**
  11.      * @param $defaultLocale
  12.      */
  13.     public function __construct(string $defaultLocale 'tr')
  14.     {
  15.         $this->defaultLocale $defaultLocale;
  16.     }
  17.     public function onKernelRequest(RequestEvent $event)
  18.     {
  19.         $request $event->getRequest();
  20.         if(!$request->hasPreviousSession())
  21.             return;
  22.         if($locale $request->attributes->get('_locale')){
  23.             $request->getSession()->set('_locale'$locale);
  24.         }else if ( $locale $request->getSession()->get('_locale')){
  25.             $request->setLocale($locale);
  26.         }else{
  27.             $request->getSession()->set('_locale',$this->defaultLocale);
  28.             $request->setLocale($this->defaultLocale);
  29.         }
  30.     }
  31.     public static function getSubscribedEvents()
  32.     {
  33.         return [
  34.           KernelEvents::REQUEST => [['onKernelRequest'17]]
  35.         ];
  36.     }
  37. }