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. }