index/src/Http/HttpHeadersBuilder.php

41 lines
1 KiB
PHP

<?php
// HttpHeadersBuilder.php
// Created: 2022-02-08
// Updated: 2022-02-27
namespace Index\Http;
use InvalidArgumentException;
class HttpHeadersBuilder {
private array $headers = [];
public function addHeader(string $name, mixed $value): void {
$nameLower = strtolower($name);
if(!isset($this->headers[$nameLower]))
$this->headers[$nameLower] = [$name];
$this->headers[$nameLower][] = $value;
}
public function setHeader(string $name, mixed $value): void {
$this->headers[strtolower($name)] = [$name, $value];
}
public function removeHeader(string $name): void {
unset($this->headers[strtolower($name)]);
}
public function hasHeader(string $name): bool {
return isset($this->headers[strtolower($name)]);
}
public function toHeaders(): HttpHeaders {
$headers = [];
foreach($this->headers as $index => $lines)
$headers[] = new HttpHeader(array_shift($lines), ...$lines);
return new HttpHeaders($headers);
}
}