Notice : fwrite(): Write of 350 bytes failed with errno=122 Disk quota exceeded in /home/bestofi/bestof/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 159
Symfony Profiler
vendor/symfony/http-kernel/EventListener/LocaleListener.php line 60
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\HttpKernel\EventListener ;
use Symfony\Component\EventDispatcher\EventSubscriberInterface ;
use Symfony\Component\HttpFoundation\Request ;
use Symfony\Component\HttpFoundation\RequestStack ;
use Symfony\Component\HttpKernel\Event\FinishRequestEvent ;
use Symfony\Component\HttpKernel\Event\KernelEvent ;
use Symfony\Component\HttpKernel\Event\RequestEvent ;
use Symfony\Component\HttpKernel\KernelEvents ;
use Symfony\Component\Routing\RequestContextAwareInterface ;
/**
* Initializes the locale based on the current request.
*
* @author Fabien Potencier <fabien@symfony.com>
*
* @final
*/
class LocaleListener implements EventSubscriberInterface
{
private ? RequestContextAwareInterface $router ;
private string $defaultLocale ;
private RequestStack $requestStack ;
private bool $useAcceptLanguageHeader ;
private array $enabledLocales ;
public function __construct ( RequestStack $requestStack , string $defaultLocale = 'en' , RequestContextAwareInterface $router = null , bool $useAcceptLanguageHeader = false , array $enabledLocales = [])
{
$this -> defaultLocale = $defaultLocale ;
$this -> requestStack = $requestStack ;
$this -> router = $router ;
$this -> useAcceptLanguageHeader = $useAcceptLanguageHeader ;
$this -> enabledLocales = $enabledLocales ;
}
public function setDefaultLocale ( KernelEvent $event )
{
$event -> getRequest ()-> setDefaultLocale ( $this -> defaultLocale );
}
public function onKernelRequest ( RequestEvent $event )
{
$request = $event -> getRequest ();
$this -> setLocale ( $request );
$this -> setRouterContext ( $request );
}
public function onKernelFinishRequest ( FinishRequestEvent $event )
{
if ( null !== $parentRequest = $this -> requestStack -> getParentRequest ()) {
$this -> setRouterContext ( $parentRequest );
}
}
private function setLocale ( Request $request )
{
if ( $locale = $request -> attributes -> get ( '_locale' )) {
$request -> setLocale ( $locale );
} elseif ( $this -> useAcceptLanguageHeader ) {
if ( $preferredLanguage = $request -> getPreferredLanguage ( $this -> enabledLocales )) {
$request -> setLocale ( $preferredLanguage );
}
$request -> attributes -> set ( '_vary_by_language' , true );
}
}
private function setRouterContext ( Request $request )
{
$this -> router ?-> getContext ()-> setParameter ( '_locale' , $request -> getLocale ());
}
public static function getSubscribedEvents (): array
{
return [
KernelEvents :: REQUEST => [
[ 'setDefaultLocale' , 100 ],
// must be registered after the Router to have access to the _locale
[ 'onKernelRequest' , 16 ],
],
KernelEvents :: FINISH_REQUEST => [[ 'onKernelFinishRequest' , 0 ]],
];
}
}