web/index.php line 44

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4. * This file is part of Contao.
  5. *
  6. * (c) Leo Feyer
  7. *
  8. * @license LGPL-3.0-or-later
  9. */
  10. use Composer\Autoload\ClassLoader;
  11. use Contao\ManagerBundle\HttpKernel\ContaoKernel;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpKernel\TerminableInterface;
  14. // Suppress error messages (see #1422)
  15. @ini_set('display_errors', '0');
  16. // Disable the phar stream wrapper for security reasons (see #105)
  17. if (in_array('phar', stream_get_wrappers(), true)) {
  18. stream_wrapper_unregister('phar');
  19. }
  20. // System maintenance mode comes first as it has to work even if the vendor directory does not exist
  21. if (file_exists(__DIR__.'/../var/maintenance.html')) {
  22. $contents = file_get_contents(__DIR__.'/../var/maintenance.html');
  23. http_response_code(503);
  24. header('Content-Type: text/html; charset=UTF-8');
  25. header('Content-Length: '.strlen($contents));
  26. header('Cache-Control: no-store');
  27. die($contents);
  28. }
  29. /** @var ClassLoader $loader */
  30. $loader = require __DIR__.'/../vendor/autoload.php';
  31. $request = Request::createFromGlobals();
  32. $kernel = ContaoKernel::fromRequest(dirname(__DIR__), $request);
  33. $response = $kernel->handle($request);
  34. $response->send();
  35. if ($kernel instanceof TerminableInterface) {
  36. $kernel->terminate($request, $response);
  37. }