<?php
declare(strict_types=1);
/*
* This file is part of Contao.
*
* (c) Leo Feyer
*
* @license LGPL-3.0-or-later
*/
use Composer\Autoload\ClassLoader;
use Contao\ManagerBundle\HttpKernel\ContaoKernel;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\TerminableInterface;
// Suppress error messages (see #1422)
@ini_set('display_errors', '0');
// Disable the phar stream wrapper for security reasons (see #105)
if (in_array('phar', stream_get_wrappers(), true)) {
stream_wrapper_unregister('phar');
}
// System maintenance mode comes first as it has to work even if the vendor directory does not exist
if (file_exists(__DIR__.'/../var/maintenance.html')) {
$contents = file_get_contents(__DIR__.'/../var/maintenance.html');
http_response_code(503);
header('Content-Type: text/html; charset=UTF-8');
header('Content-Length: '.strlen($contents));
header('Cache-Control: no-store');
die($contents);
}
/** @var ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';
$request = Request::createFromGlobals();
$kernel = ContaoKernel::fromRequest(dirname(__DIR__), $request);
$response = $kernel->handle($request);
$response->send();
if ($kernel instanceof TerminableInterface) {
$kernel->terminate($request, $response);
}