<?php
use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
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_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
if ($_SERVER['APP_ENV'] == 'prod') {
ini_set('display_errors', 0);
}
if ($_SERVER['APP_ENV'] !== 'prod' && trim($_SERVER['OPENFORM_APP_ENV_FORBIDDEN_IGNORE_CHECK']) === 'false') {
if (! in_array(
$_SERVER['REMOTE_ADDR'],
array_merge( [ '127.0.0.1', '::1' ], array_map( 'trim', explode(',', $_SERVER['OPENFORM_HOST']) ) )
)) {
http_response_code(403);
echo '403 ENV Forbidden';
exit;
}
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
if ($_SERVER['APP_ENV'] == 'prod') {
try {
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
} catch (\Exception $e) {
echo 'Error. Please contact the administrator.';
exit;
}
} else {
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
}