<?php
use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__) . '/vendor/autoload.php';
(new Dotenv())->bootEnv(dirname(__DIR__) . '/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if (php_sapi_name() !== 'cli' && ($_SERVER['REMOTE_ADDR'] ?? '') === 'unix:') {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) foreach (explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']) as $ip) {
if (!empty(trim($ip))) {
$_SERVER['REMOTE_ADDR'] = trim($ip);
break;
}
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED'];
elseif (!empty($_SERVER['HTTP_FORWARDED_FOR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_FORWARDED_FOR'];
elseif (!empty($_SERVER['HTTP_FORWARDED'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_FORWARDED'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED'];
elseif (!empty($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool)$_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->headers->removeCookie('PHPSESSID');
$response->send();
$kernel->terminate($request, $response);