cookies = $cookies; } public function getCookies(): array { return $this->cookies; } public function hasCookie(string $name): bool { return isset($this->cookies[$name]); } public function getCookie(string $name, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed { if(!isset($this->cookies[$name])) return null; return filter_var($this->cookies[$name] ?? null, $filter, $options); } public static function parse(HttpHeader $header): CookieHeader { $cookies = []; $lines = $header->getLines(); foreach($lines as $line) { $parts = explode(';', $line); foreach($parts as $part) { $kvp = explode('=', $part, 2); $cookies[rawurldecode($kvp[0])] = rawurldecode($kvp[1] ?? ''); } } return new CookieHeader($cookies); } }