src/EventListener/LocaleListener.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\RequestEvent;
  4. class LocaleListener
  5. {
  6.     private string $locale;
  7.     public function __construct(
  8.         string $locale
  9.     ) {
  10.         $this->locale $locale;
  11.     }
  12.     public function onKernelRequest(RequestEvent $event)
  13.     {
  14.         $request $event->getRequest();
  15.         if (!$request->hasPreviousSession()) {
  16.             return;
  17.         }
  18.         if ($locale $request->get('_locale')) {
  19.             $request->getSession()->set('_locale'$locale);
  20.         } else {
  21.             $request->setLocale($request->getSession()->get('_locale'$this->locale));
  22.         }
  23.     }
  24. }