src/Service/Locale/LocaleProvider.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Service\Locale;
  3. use App\Constants\AppConstant;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. class LocaleProvider
  6. {
  7.     private RequestStack $requestStack;
  8.     public function __construct(RequestStack $requestStack)
  9.     {
  10.         $this->requestStack $requestStack;
  11.     }
  12.     /**
  13.      * @return string
  14.      */
  15.     public function provide(): string
  16.     {
  17.         $request $this->requestStack->getCurrentRequest();
  18.         if (null !== $request) {
  19.             $locale $request->get(AppConstant::LOCALE_SESSION_CONSTANTE)
  20.                 ?? $request->getSession()->get(AppConstant::LOCALE_SESSION_CONSTANTE)
  21.                 ?? AppConstant::DEFAULT_LOCALE;
  22.             if (!in_array($localeAppConstant::LOCALEStrue)) {
  23.                 $locale AppConstant::DEFAULT_LOCALE;
  24.             }
  25.             $request->setLocale($locale);
  26.             $request->getSession()->set(AppConstant::LOCALE_SESSION_CONSTANTE$locale);
  27.             return $locale;
  28.         }
  29.         return AppConstant::DEFAULT_LOCALE;
  30.     }
  31. }