streams/index.php
2024-07-17 05:27:27 +10:00

60 lines
1.4 KiB
PHP
Executable file

<?php
namespace Code\Web;
/**
* @file index.php
*
* @brief The main entry point to the application.
*
*/
use App\Kernel;
use App\LegacyBridge;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require 'vendor/autoload.php';
require_once 'src/Web/WebServer.php';
if (!file_exists('.env')) {
$server = new WebServer();
$server->run(null, null, __DIR__);
exit;
}
(new Dotenv())->bootEnv('.env');
global $kernel;
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(
explode(',', $trustedProxies),
Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO
);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
if (false === $response->isNotFound()) {
// Symfony successfully handled the route.
$response->send();
} else {
$server = new WebServer();
$server->run($request, $response, __DIR__);
}
$kernel->terminate($request, $response);