<?php

namespace AppBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Class LocaleListener
 */
class LocaleListener implements EventSubscriberInterface
{
    private $defaultLocale;
    
    public function __construct($defaultLocale = 'pl')
    {
        $this->defaultLocale = $defaultLocale;
    }
    
    public function onKernelRequest(GetResponseEvent $event)
    {
        $request = $event->getRequest();
        
        $request->setLocale($request->getSession()->get('_locale', $this->defaultLocale));
    }
    
    public static function getSubscribedEvents()
    {
        return array(
            KernelEvents::REQUEST => array(array('onKernelRequest', 17)),
        );
    }
}