addNamespace('App', __DIR__.'/../src'); $autoloader->register(); // Load configuration $storeConfigFile = __DIR__.'/../config/app-store.php'; $defaultConfigFile = __DIR__.'/../config/app.php'; if (file_exists($storeConfigFile)) { $config = require $storeConfigFile; } elseif (file_exists($defaultConfigFile)) { $config = require $defaultConfigFile; } else { die('Configuration file not found'); } // Set up error handling // Note: Logger and ErrorHandler classes not implemented yet // Using basic PHP error handling for now // Initialize router $router = new \App\Core\Router($config['api_base_path']); // Add global middleware $router->addGlobalMiddleware(\App\Middleware\SecurityMiddleware::class); $router->addGlobalMiddleware(\App\Middleware\CorsMiddleware::class); // Load routes $routeLoader = require __DIR__.'/../config/routes.php'; $routeLoader($router); // Handle the request try { $router->dispatch(); } catch (\Exception $e) { // Fallback error handling http_response_code(500); header('Content-Type: application/json'); if ($config['debug']) { echo json_encode([ 'error' => 'Internal Server Error', 'message' => $e->getMessage(), 'file' => $e->getFile(), 'line' => $e->getLine() ], JSON_PRETTY_PRINT); } else { echo json_encode([ 'error' => 'Internal Server Error', 'message' => 'An unexpected error occurred' ]); } // Log the error error_log("Fatal Error: ".$e->getMessage()." in ".$e->getFile().":".$e->getLine()); }