<?php
namespace App\Core\EventSubscriber\Language;
use App\Domain\User\Entity\User;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\SecurityEvents;
class SetLanguageLoginSubscriber implements EventSubscriberInterface
{
public function __construct()
{
}
public function onInteractiveLogin(InteractiveLoginEvent $event): void
{
$request = $event->getRequest();
/** @var User $user */
$user = $event->getAuthenticationToken()->getUser();
$request->getSession()->set('_locale', $user->getLanguage());
}
public static function getSubscribedEvents(): array
{
return [
SecurityEvents::INTERACTIVE_LOGIN => [['onInteractiveLogin', 20]],
];
}
}