index.php 860 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. use FrameworkX\App;
  3. use Middlewares\CorsMiddleware;
  4. use Routes\Dispatcher;
  5. require __DIR__ . '/../vendor/autoload.php';
  6. $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
  7. $file = __DIR__ . $path;
  8. if (php_sapi_name() === 'cli-server' && is_file($file)) {
  9. return false;
  10. }
  11. if (class_exists(Dotenv\Dotenv::class) && file_exists(__DIR__ . '/../.env')) {
  12. Dotenv\Dotenv::createImmutable(
  13. dirname(__DIR__),
  14. null,
  15. true
  16. )->safeLoad();
  17. }
  18. error_reporting(E_ALL);
  19. // CorsMiddleware é GLOBAL: roda antes do roteamento para também responder ao
  20. // preflight OPTIONS (que não possui rota e cairia em 404 sem este tratamento).
  21. $app = new App(new CorsMiddleware());
  22. // As rotas (com autenticação JWT e autorização por papel) ficam centralizadas
  23. // em routes/Dispatcher.php.
  24. Dispatcher::register($app);
  25. $app->run();