| 12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- use FrameworkX\App;
- use Middlewares\CorsMiddleware;
- use Routes\Dispatcher;
- require __DIR__ . '/../vendor/autoload.php';
- // Fallback para servir arquivos estáticos apenas no servidor embutido do PHP
- // (`php -S ... -t public`). Sob outros SAPIs (CLI / servidor do FrameworkX) não
- // existe REQUEST_URI, então só acessamos essa chave dentro do modo cli-server.
- if (php_sapi_name() === 'cli-server') {
- $path = parse_url($_SERVER['REQUEST_URI'] ?? '', PHP_URL_PATH);
- if ($path !== null && $path !== '' && is_file(__DIR__ . $path)) {
- return false;
- }
- }
- if (class_exists(Dotenv\Dotenv::class) && file_exists(__DIR__ . '/../.env')) {
- Dotenv\Dotenv::createImmutable(
- dirname(__DIR__),
- null,
- true
- )->safeLoad();
- }
- error_reporting(E_ALL);
- // CorsMiddleware é GLOBAL: roda antes do roteamento para também responder ao
- // preflight OPTIONS (que não possui rota e cairia em 404 sem este tratamento).
- $app = new App(new CorsMiddleware());
- // As rotas (com autenticação JWT e autorização por papel) ficam centralizadas
- // em routes/Dispatcher.php.
- Dispatcher::register($app);
- $app->run();
|