<?php
namespace App\AtechNet\CoreBundle\EventSubscriber;
use App\AtechNet\CoreBundle\Helper\Furbify\MultiStore;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class LocaleSubscriber implements EventSubscriberInterface
{
public function onKernelRequest(RequestEvent $event)
{
$request = $event->getRequest();
$session = $request->getSession();
// Customer Type
if (is_null($session->get('customerTypeId'))) {
MultiStore::setCustomerType($request);
}
// Domain
if (is_null($session->get('domainId'))) {
MultiStore::setDomain($request);
}
// Default Language
if (is_null($session->get('_locale')) || is_null($session->get('defaultLanguageId')) || is_null($session->get('defaultLocale'))) {
MultiStore::setDefaultLanguage($request);
}
// Langauge
MultiStore::setLanguage($request);
// Local Domain
if (is_null($session->get('localeDomainId'))) {
MultiStore::setLocalDomain($request);
}
// Default Country
if (is_null($session->get('defaultCountry'))) {
MultiStore::setDefaultCountry($request);
}
// Price Base
MultiStore::setBasePrice($request);
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => [['onKernelRequest', 20]],
];
}
}