public/index.php line 129

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. $zip = dirname(__DIR__).'/tmp/'.$subdomain.'.tar.gz';
  73. if (file_exists(dirname(__DIR__).'/env/'.$name)) {
  74. $dotenv = new Dotenv();
  75. $dotenv->bootEnv(dirname(__DIR__).'/env/'.$name);
  76. } elseif (file_exists($zip)) {
  77. session_start();
  78. $_SESSION[ 'allow_vhost_creation' ] = TRUE;
  79. header('Location: /create_vhost.php');
  80. exit();
  81. } else {
  82. echo "Le domaine ".$subdomain." n'est pas servi par DTV. (pas de .env)";
  83. die();
  84. }
  85. /**
  86. * END
  87. */
  88. /**
  89. * START : Hack pour éviter les 500 quand il reste un Dump dans le code en prod
  90. */
  91. if ($_SERVER[ 'APP_DEBUG' ]) {
  92. umask(0000);
  93. Debug::enable();
  94. } else {
  95. VarDumper::setHandler(function ($var) {
  96. });
  97. }
  98. /**
  99. * END
  100. */
  101. $kernel = new Kernel($_SERVER[ 'APP_ENV' ], (bool)$_SERVER[ 'APP_DEBUG' ]);
  102. /**
  103. * Merge le .en.local s'il existe => Mailhog notamment
  104. */
  105. if ($_ENV[ 'APP_ENV' ] === 'dev' && file_exists($kernel->getProjectDir().'/.env.local')) {
  106. $dotenv->loadEnv($kernel->getProjectDir().'/.env.local');
  107. }
  108. /**
  109. * END
  110. */
  111. $request = Request::createFromGlobals();
  112. $response = $kernel->handle($request);
  113. $response->send();
  114. $kernel->terminate($request, $response);