35 lines
695 B
PHP
35 lines
695 B
PHP
<?php
|
|
|
|
namespace NoccyLabs\React\Http2\Header;
|
|
|
|
use ArrayIterator;
|
|
use IteratorAggregate;
|
|
use NoccyLabs\React\Http2\Huffman\Codec;
|
|
use NoccyLabs\React\Http2\Huffman\Dictionary;
|
|
use Traversable;
|
|
|
|
/**
|
|
* An ordered list of HTTP/2 headers
|
|
*
|
|
*
|
|
*/
|
|
class HeaderBag implements IteratorAggregate
|
|
{
|
|
|
|
private array $headers = [];
|
|
|
|
public function __construct(array $headers = [])
|
|
{
|
|
foreach ($headers as $name=>$value) $this->append($name, $value);
|
|
}
|
|
|
|
public function append(string $name, string $value)
|
|
{
|
|
$this->headers[] = [ $name, $value ];
|
|
}
|
|
|
|
public function getIterator(): Traversable
|
|
{
|
|
return new ArrayIterator($this->headers);
|
|
}
|
|
} |