public/index.php line 123

Open in your IDE?
  1. <?php
  2.     /**
  3.      * Le présent fichier a été modifier afin de répondre aux besoins SaaS de l'application DTV
  4.      */
  5.     use App\Kernel;
  6.     use Symfony\Component\Dotenv\Dotenv;
  7.     use Symfony\Component\ErrorHandler\Debug;
  8.     use Symfony\Component\HttpFoundation\Request;
  9.     use Symfony\Component\VarDumper\VarDumper;
  10. //    // Code pour la maintenance DAIKIN
  11. //    $white_ip = [
  12. //        '172.16.238.1',     // Local
  13. //        '88.166.195.178',   // Manu
  14. //        '37.65.65.137',     // Virginie
  15. //    ];
  16. //
  17. //    if (!in_array($_SERVER[ 'REMOTE_ADDR' ], $white_ip)) {
  18. //        header('Location: /maintenance.php');
  19. //        exit();
  20. //    }
  21. //    // Fin code pour la maintenance DAIKIN
  22.     /**
  23.      * Page HTML "en maintenance" lors des déploiements
  24.      */
  25.     if (file_exists(dirname(__DIR__) . '/medias/upgrade.log')){
  26.         $file dirname(__DIR__) . '/templates/common/upgrade/index.html';
  27.         header('Pragma: no-cache');
  28.         header('Expires: 0');
  29.         header('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
  30.         header('Cache-Control: no-cache, must-revalidate');
  31.         header'Content-Type: ' mime_content_type$file ) );
  32.         header('HTTP/1.1 503 Service Temporarily Unavailable');
  33.         header('Status: 503 Service Temporarily Unavailable');
  34.         echo file_get_contents($file);
  35.         exit();
  36.     }
  37.     /**
  38.      * START : Check en toute priorité si la ressource est de type static-file et le cas échéant, la traite
  39.      * avant le traitement symfony (gain de 500ms par request de type image/pdf etc)
  40.      */
  41.     if (strpos($_SERVER'REQUEST_URI' ], 'static-file') || strpos($_SERVER'REQUEST_URI' ], 'static-project-file')) {
  42.         $file str_replace('/public'''__DIR__).
  43.                 '/medias/'.$_SERVER'HTTP_HOST' ].
  44.                 str_replace(['/static-file''/static-project-file'], ''$_SERVER'REQUEST_URI' ]);
  45.         $file strtok($file'?');
  46.         if (file_exists($file)) {
  47.             header('Pragma: no-cache');
  48.             header('Expires: 0');
  49.             header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  50.             header('Cache-Control: no-cache, must-revalidate');
  51.             header('Content-Type: '.mime_content_type($file));
  52.             echo file_get_contents($file);
  53.         } else {
  54.             header("HTTP/1.1 404 Not Found");
  55.         }
  56.         exit();
  57.     }
  58.     /**
  59.      * END
  60.      */
  61.     require dirname(__DIR__).'/vendor/autoload.php';
  62.     /**
  63.      * START : override du .env suivant le domaine en cours
  64.      */
  65.     // On retire le www.
  66.     if (strpos($_SERVER'HTTP_HOST' ], 'www.') === 0) {
  67.         $subdomain substr($_SERVER'HTTP_HOST' ], 4);
  68.     } else {
  69.         $subdomain $_SERVER'HTTP_HOST' ];
  70.     }
  71.     $name $subdomain.'.env';
  72.     if (file_exists(dirname(__DIR__).'/env/'.$name)) {
  73.         $dotenv = new Dotenv();
  74.         $dotenv->bootEnv(dirname(__DIR__).'/env/'.$name);
  75.     } else {
  76.         echo "Le domaine ".$subdomain." n'est pas servi par DTV. (pas de .env) hélas !";
  77.         die();
  78.     }
  79.     /**
  80.      * END
  81.      */
  82.     /**
  83.      * START : Hack pour éviter les 500 quand il reste un Dump dans le code en prod
  84.      */
  85.     if ($_SERVER'APP_DEBUG' ]) {
  86.         umask(0000);
  87.         Debug::enable();
  88.     } else {
  89.         VarDumper::setHandler(function ($var) {
  90.         });
  91.     }
  92.     /**
  93.      * END
  94.      */
  95.     $kernel = new Kernel($_SERVER'APP_ENV' ], (bool)$_SERVER'APP_DEBUG' ]);
  96.     /**
  97.      * Merge le .en.local s'il existe => Mailhog notamment
  98.      */
  99.     if ($_ENV'APP_ENV' ] === 'dev' && file_exists($kernel->getProjectDir().'/.env.local')) {
  100.         $dotenv->loadEnv($kernel->getProjectDir().'/.env.local');
  101.     }
  102.     /**
  103.      * END
  104.      */
  105.     $request  Request::createFromGlobals();
  106.     $response $kernel->handle($request);
  107.     $response->send();
  108.     $kernel->terminate($request$response);