get = $get; $this->post = $post; $this->server = $server; $this->method = $server['REQUEST_METHOD'] ?? 'GET'; $this->uri = $server['REQUEST_URI'] ?? '/'; } public static function capture(): self { if (self::$current instanceof self) { return self::$current; } return new self($_GET, $_POST, $_SERVER); } public static function setCurrent(self $request): void { self::$current = $request; } public static function clearCurrent(): void { self::$current = null; } public function method(): string { return strtoupper($this->method); } public function path(): string { $path = parse_url($this->uri, PHP_URL_PATH); return $path ?: '/'; } public function input(string $key, mixed $default = null): mixed { return $this->post[$key] ?? $this->get[$key] ?? $default; } public function server(string $key, mixed $default = null): mixed { return $this->server[$key] ?? $default; } public function all(): array { return array_merge($this->get, $this->post); } }