src/EventSubscriber/MaintenanceSubscriber.php line 23
<?phpnamespace Cms\EventSubscriber;use Cms\String\MaintenanceTokenChecker;use Symfony\Component\DependencyInjection\Attribute\Autowire;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpKernel\Event\RequestEvent;use Symfony\Component\HttpKernel\KernelEvents;use Twig\Environment;class MaintenanceSubscriber implements EventSubscriberInterface{public function __construct(private readonly Environment $twig,private readonly RequestStack $requestStack,#[Autowire('%cms.is_maintenance%')] private readonly bool $isMaintenance,#[Autowire('%cms.is_maintenance.token%')] private readonly string $maintenanceToken,) {}public function onKernelRequest(RequestEvent $event): void{$request = $event->getRequest();$token = $request->query->get('token', null);if ($this->isMaintenance&& (!$token || $this->maintenanceToken !== $token)&& !\str_starts_with($request->attributes->get('_route'), '_')) {$response = new Response();if ($this->requestStack->getMainRequest() === $request) {$response->setContent($this->twig->render('maintenance.html.twig'));}$event->setResponse($response);}}public static function getSubscribedEvents(): array{return [KernelEvents::REQUEST => ['onKernelRequest', 0],];}}