<?php
declare(strict_types=1);
namespace App\Module\Store\Integration\Subscriber;
use App\Locale\LocaleProviderInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
/**
* @package App\Module\Store\Integration\Subscriber
*/
class LocaleSubscriber implements EventSubscriberInterface
{
private LocaleProviderInterface $localeProvider;
/**
* @param LocaleProviderInterface $localeProvider
*/
public function __construct(LocaleProviderInterface $localeProvider)
{
$this->localeProvider = $localeProvider;
}
/**
* @return string[][]
*/
public static function getSubscribedEvents(): array
{
return [
'kernel.response' => [
'attachCurrentLocale'
]
];
}
/**
*
*
* @param ResponseEvent $responseEvent
*
* @return void
*/
public function attachCurrentLocale(ResponseEvent $responseEvent): void
{
$responseEvent
->getResponse()
->headers
->setCookie(
new Cookie(
'currentlocale_denios',
str_replace(
'_',
'-',
strtolower($this->localeProvider->getLocaleInfo()->getCurrentLocale())
),
0,
'/',
null,
null,
false,
false,
'None'
)
);
}
}