<?php
use FMS\eLibreria\CmsBundle\Kernel;
use FMS\eLibreria\CmsBundle\Runtime\RuntimeEnvironment;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require __DIR__.'/../vendor/autoload.php';
// The check is to ensure we don't use .env in production. The environment is read from the three sources a
// SAPI may fill, because php -S leaves it in $_ENV alone and reading $_SERVER by itself served dev to an
// installation started in prod (finding 9 of doc/verifactu/STATUS.md).
$environment = RuntimeEnvironment::resolve($_SERVER, $_ENV, getenv());
if (!$environment->isDefined()) {
if (!class_exists(Dotenv::class)) {
throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.');
}
// putenv keeps getenv() working for the application code, as with Dotenv 4
(new Dotenv())->usePutenv(true)->load(__DIR__.'/../.env');
$environment = RuntimeEnvironment::resolve($_SERVER, $_ENV, getenv());
}
$env = $environment->name();
$debug = $environment->isDebug();
if ($debug) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['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'] ?? false) {
Request::setTrustedHosts(explode(',', $trustedHosts));
}
$kernel = new Kernel($env, $debug);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);