['onRequest', 40]]; } public function onRequest(RequestEvent $event): void { if (!$event->isMainRequest() || !is_file($this->projectDir.'/'.Updater::MAINTENANCE_FILE)) { return; } $path = $event->getRequest()->getPathInfo(); if (preg_match('#^/('.preg_quote($this->adminPath, '#').'|assets/|media/|favicon)#', $path)) { return; } $since = @file_get_contents($this->projectDir.'/'.Updater::MAINTENANCE_FILE); $response = new Response( $this->twig->render('maintenance.html.twig', ['since' => trim((string) $since)]), Response::HTTP_SERVICE_UNAVAILABLE, [ 'Retry-After' => '600', 'Cache-Control' => 'no-store', 'Content-Type' => 'text/html; charset=UTF-8', 'Content-Security-Policy' => "default-src 'self'; script-src 'none'; style-src 'self'; img-src 'self'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'", ], ); $event->setResponse($response); } }