index/src/Http/Headers/UpgradeHeader.php

34 lines
776 B
PHP

<?php
// UpgradeHeader.php
// Created: 2022-02-14
// Updated: 2022-02-27
namespace Index\Http\Headers;
use Index\Http\HttpHeader;
class UpgradeHeader {
private array $protocols;
public function __construct(array $protocols) {
$this->protocols = $protocols;
}
public function getProtocols(): array {
return $this->protocols;
}
public function isAccepted(string $protocol): bool {
return in_array(strtolower($protocol), $this->protocols);
}
public static function parse(HttpHeader $header): UpgradeHeader {
return new UpgradeHeader(
array_map(
fn($directive) => trim($directive),
explode(',', strtolower($header->getFirstLine()))
)
);
}
}