scheme = $requestUrl['scheme']; $this->host = $requestUrl['host']; $this->path = $requestUrl['path'] ?? '/'; $this->query = []; if (isset($requestUrl['query'])) { foreach (explode('&', $requestUrl['query']) as $queryString) { $query = explode('=', $queryString); $this->query[$query[0]] = $query[1] ?? null; } } } /** * @param resource $resource */ public static function fromResource($resource): static { return Request::fromString(fread($resource, 1024)); } public static function fromString(string $string): static { $requestUrl = explode("\r\n", $string)[0] ?? ''; return new Request($requestUrl); } public function getPath(): string { return $this->path; } }