src/EventListener/MaintenanceListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\RequestEvent;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Twig\Environment;
  6. use Twig\Error\LoaderError;
  7. use Twig\Error\RuntimeError;
  8. use Twig\Error\SyntaxError;
  9. class MaintenanceListener
  10. {
  11.     public function __construct(private readonly Environment $twig)
  12.     {
  13.     }
  14.     /**
  15.      * @throws SyntaxError
  16.      * @throws RuntimeError
  17.      * @throws LoaderError
  18.      */
  19.     public function onKernelRequest(RequestEvent $event): void
  20.     {
  21.         if (file_exists(__DIR__ '/../../var/maintenance.lock')) {
  22.             $htmlContent $this->twig->render('front/maintenance/global-maintenance.html.twig');
  23.             $response = new Response(
  24.                 $htmlContent,
  25.                 Response::HTTP_SERVICE_UNAVAILABLE
  26.             );
  27.             // Arrêter l'événement avant que Symfony ne traite la requête
  28.             $event->setResponse($response);
  29.             $event->stopPropagation();
  30.         }
  31.     }
  32. }