diff options
Diffstat (limited to 'App/Router.php')
| -rw-r--r-- | App/Router.php | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/App/Router.php b/App/Router.php deleted file mode 100644 index 42fd3e1..0000000 --- a/App/Router.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -namespace App; - -class Router { - private array $config; - private string $routesDir; - private array $statusHandlers = []; - - function __construct(string $routesDir, array $config) { - $this->routesDir = $routesDir; - $this->config = $config; - } - - function registerStatusHandler(int $status, callable $handler) { - $this->statusHandlers[$status] = $handler; - } - - private function dealWithError(int $status, string $path) { - http_response_code($status); - if (isset($this->statusHandlers[$status])) { - $this->statusHandlers[$status]($path); - } else { - echo '<p>' . $status . ' for ' . htmlspecialchars($path) . '</p>'; - } - } - - function dispatch(string $path) { - if (str_contains($path, '..')) { - $this->dealWithError(404, $path); - return; - } - - if (file_exists($this->routesDir . $path . '.php')) { - require_once $this->routesDir . $path . '.php'; - } elseif (file_exists($this->routesDir . $path . 'index.php')) { - require_once $this->routesDir . $path . 'index.php'; - } else { - $this->dealWithError(404, $path); - return; - } - - if (function_exists($_SERVER['REQUEST_METHOD'])) { - $_SERVER['REQUEST_METHOD']($this->config); - } else { - $this->dealWithError(405, $path); - } - } -} |
