public/index.php line 83

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. use Shopware\Production\HttpKernel;
  3. use Symfony\Component\Dotenv\Dotenv;
  4. use Symfony\Component\ErrorHandler\Debug;
  5. use Symfony\Component\HttpFoundation\Request;
  6. if (\PHP_VERSION_ID 70403) {
  7.     header('Content-type: text/html; charset=utf-8'true503);
  8.     echo '<h2>Error</h2>';
  9.     echo 'Your server is running PHP version ' \PHP_VERSION ' but Shopware 6 requires at least PHP 7.4.3';
  10.     exit(1);
  11. }
  12. if(strpos($_SERVER['REQUEST_URI'], "multiload") !== false){
  13.     $_COOKIE["timer"] = microtime(true);
  14. }
  15. /*
  16. if (class_exists('Tideways\Profiler')) {
  17.     \Tideways\Profiler::start(array(
  18.         'api_key' => 'Fwg9NQjClT9Mug7J',
  19.         'sample_rate' => 25,
  20.     ));
  21. }
  22.  */
  23. $classLoader = require __DIR__ '/../vendor/autoload.php';
  24. if (!file_exists(dirname(__DIR__) . '/install.lock')) {
  25.     $basePath 'recovery/install';
  26.     $baseURL str_replace(basename(__FILE__), ''$_SERVER['SCRIPT_NAME']);
  27.     $baseURL rtrim($baseURL'/');
  28.     $installerURL $baseURL '/' $basePath '/index.php';
  29.     if (strpos($_SERVER['REQUEST_URI'], $basePath) === false) {
  30.         header('Location: ' $installerURL);
  31.         exit;
  32.     }
  33. }
  34. if (is_file(dirname(__DIR__) . '/files/update/update.json') || is_dir(dirname(__DIR__) . '/update-assets')) {
  35.     header('Content-type: text/html; charset=utf-8'true503);
  36.     header('Status: 503 Service Temporarily Unavailable');
  37.     header('Retry-After: 1200');
  38.     if (file_exists(__DIR__ '/maintenance.html')) {
  39.         readfile(__DIR__ '/maintenance.html');
  40.     } else {
  41.         readfile(__DIR__ '/recovery/update/maintenance.html');
  42.     }
  43.     return;
  44. }
  45. $projectRoot dirname(__DIR__);
  46. if (class_exists(Dotenv::class) && (file_exists($projectRoot '/.env.local.php') || file_exists($projectRoot '/.env') || file_exists($projectRoot '/.env.dist'))) {
  47.     (new Dotenv())->usePutenv()->bootEnv(dirname(__DIR__) . '/.env');
  48. }
  49. $appEnv $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? 'dev';
  50. $debug = (bool) ($_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? ($appEnv !== 'prod' && $appEnv !== 'e2e'));
  51. if ($debug) {
  52.     umask(0000);
  53.     Debug::enable();
  54. }
  55. $trustedProxies $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false;
  56. if ($trustedProxies) {
  57.     Request::setTrustedProxies(explode(','$trustedProxies), Request::HEADER_X_FORWARDED_FOR Request::HEADER_X_FORWARDED_PORT Request::HEADER_X_FORWARDED_PROTO);
  58. }
  59. $trustedHosts $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false;
  60. if ($trustedHosts) {
  61.     Request::setTrustedHosts(explode(','$trustedHosts));
  62. }
  63. $request Request::createFromGlobals();
  64. $kernel = new HttpKernel($appEnv$debug$classLoader);
  65. $result $kernel->handle($request);
  66. $result->getResponse()->send();
  67. $kernel->terminate($result->getRequest(), $result->getResponse());