<?php
/**
* Le présent fichier a été modifier afin de répondre aux besoins SaaS de l'application DTV
*/
use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\VarDumper\VarDumper;
// // Code pour la maintenance DAIKIN
// $white_ip = [
// '172.16.238.1', // Local
// '88.166.195.178', // Manu
// '37.65.65.137', // Virginie
// ];
//
// if (!in_array($_SERVER[ 'REMOTE_ADDR' ], $white_ip)) {
// header('Location: /maintenance.php');
// exit();
// }
// // Fin code pour la maintenance DAIKIN
/**
* Page HTML "en maintenance" lors des déploiements
*/
if (file_exists(dirname(__DIR__) . '/medias/upgrade.log')){
$file = dirname(__DIR__) . '/templates/common/upgrade/index.html';
header('Pragma: no-cache');
header('Expires: 0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-cache, must-revalidate');
header( 'Content-Type: ' . mime_content_type( $file ) );
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
echo file_get_contents($file);
exit();
}
/**
* START : Check en toute priorité si la ressource est de type static-file et le cas échéant, la traite
* avant le traitement symfony (gain de 500ms par request de type image/pdf etc)
*/
if (strpos($_SERVER[ 'REQUEST_URI' ], 'static-file') || strpos($_SERVER[ 'REQUEST_URI' ], 'static-project-file')) {
$file = str_replace('/public', '', __DIR__).
'/medias/'.$_SERVER[ 'HTTP_HOST' ].
str_replace(['/static-file', '/static-project-file'], '', $_SERVER[ 'REQUEST_URI' ]);
$file = strtok($file, '?');
if (file_exists($file)) {
header('Pragma: no-cache');
header('Expires: 0');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Content-Type: '.mime_content_type($file));
echo file_get_contents($file);
} else {
header("HTTP/1.1 404 Not Found");
}
exit();
}
/**
* END
*/
require dirname(__DIR__).'/vendor/autoload.php';
/**
* START : override du .env suivant le domaine en cours
*/
// On retire le www.
if (strpos($_SERVER[ 'HTTP_HOST' ], 'www.') === 0) {
$subdomain = substr($_SERVER[ 'HTTP_HOST' ], 4);
} else {
$subdomain = $_SERVER[ 'HTTP_HOST' ];
}
$name = $subdomain.'.env';
if (file_exists(dirname(__DIR__).'/env/'.$name)) {
$dotenv = new Dotenv();
$dotenv->bootEnv(dirname(__DIR__).'/env/'.$name);
} else {
echo "Le domaine ".$subdomain." n'est pas servi par DTV. (pas de .env) hélas !";
die();
}
/**
* END
*/
/**
* START : Hack pour éviter les 500 quand il reste un Dump dans le code en prod
*/
if ($_SERVER[ 'APP_DEBUG' ]) {
umask(0000);
Debug::enable();
} else {
VarDumper::setHandler(function ($var) {
});
}
/**
* END
*/
$kernel = new Kernel($_SERVER[ 'APP_ENV' ], (bool)$_SERVER[ 'APP_DEBUG' ]);
/**
* Merge le .en.local s'il existe => Mailhog notamment
*/
if ($_ENV[ 'APP_ENV' ] === 'dev' && file_exists($kernel->getProjectDir().'/.env.local')) {
$dotenv->loadEnv($kernel->getProjectDir().'/.env.local');
}
/**
* END
*/
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);