|
- <?php
-
- declare(strict_types=1);
-
- require_once __DIR__ . '/../vendor/autoload.php';
-
- // Load .env file if present — sets vars via putenv() so getenv() picks them up
- (static function (): void {
- $envFile = __DIR__ . '/../.env';
- if (!file_exists($envFile)) {
- return;
- }
- foreach (file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) {
- $line = trim($line);
- if ($line === '' || $line[0] === '#' || !str_contains($line, '=')) {
- continue;
- }
- [$name, $value] = explode('=', $line, 2);
- $name = trim($name);
- $value = trim($value);
- if ($name !== '' && getenv($name) === false) {
- putenv("{$name}={$value}");
- $_ENV[$name] = $value;
- }
- }
- })();
-
- use Core\Dispatcher;
- use Core\Request;
- use Core\Router;
-
- ensureSessionStarted();
-
- $app = app();
- $router = new Router();
-
- require_once __DIR__ . '/../routes/web.php';
-
- $debug = filter_var(getenv('APP_DEBUG'), FILTER_VALIDATE_BOOLEAN);
- $dispatcher = new Dispatcher($router, $app, $debug);
- $request = Request::capture();
- $app->bind(Request::class, $request);
- $response = $dispatcher->dispatch($request);
-
- $response->send();
|