41 lines
1 KiB
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);
|
|
}
|
|
}
|