<?php
namespace App\EventSubscriber;
use App\Service\Space\SpaceProvider;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Twig\Environment;
class TwigGlobalsSubscriber implements EventSubscriberInterface
{
private Environment $twig;
private SpaceProvider $spaceProvider;
public function __construct(
Environment $twig,
SpaceProvider $spaceProvider
)
{
$this->twig = $twig;
$this->spaceProvider = $spaceProvider;
}
/**
* @param RequestEvent $event
* @return void
*/
public function onKernelRequest(
RequestEvent $event
): void
{
$this->twig->addGlobal('_space', $this->spaceProvider->getSpaceFromRequest($event->getRequest()));
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => 'onKernelRequest',
];
}
}