start.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. use App\Kernel;
  3. use Symfony\Component\Dotenv\Dotenv;
  4. use Symfony\Component\ErrorHandler\Debug;
  5. use Symfony\Component\HttpFoundation\Request;
  6. require __DIR__.'/vendor/autoload.php';
  7. (new Dotenv())->bootEnv(__DIR__.'/.env');
  8. if ($_SERVER['APP_DEBUG']) {
  9. umask(0000);
  10. Debug::enable();
  11. }
  12. if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
  13. Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
  14. }
  15. if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
  16. Request::setTrustedHosts([$trustedHosts]);
  17. }
  18. global $kernel;
  19. $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
  20. function run()
  21. {
  22. global $kernel;
  23. ob_start();
  24. $request = Request::createFromGlobals();
  25. $response = $kernel->handle($request);
  26. $response->send();
  27. header('Date: ' . Header::$date); // To pass the bench, nginx auto add it
  28. $kernel->terminate($request, $response);
  29. return ob_get_clean();
  30. }