Inject user also and all will work like a charm
namespace MyApp\AppBundle\Services;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class TwigDateRequestListener
{
protected $twig;
protected $context;
function __construct(\Twig_Environment $twig, SecurityContext $context)
{
$this->twig = $twig;
$this->context = $context;
}
public function onKernelRequest(GetResponseEvent $event)
{
$user = $this->context->getToken()->getUser();
$user_date_format = $user->//function to retrieve date settings
$this->twig->getExtension('core')->setDateFormat('Y-m-d', '%d days');
}
}
And remember to modify service definition
services:
twigdate.listener.request:
class: MyApp\AppBundle\Services\TwigDateRequestListener
arguments: [@twig, @security.context]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
onKernelRequest
is called when kernel.request
event is raised (take a look to service definition and you'll probably understood this)
kernel.request
is raised every time a page is raised at every request