36 lines
833 B
PHP
36 lines
833 B
PHP
<?php
|
|
// ContentLanguageHeader.php
|
|
// Created: 2022-02-14
|
|
// Updated: 2022-02-27
|
|
|
|
namespace Index\Http\Headers;
|
|
|
|
use Index\Http\HttpHeader;
|
|
|
|
class ContentLanguageHeader {
|
|
private array $langs;
|
|
|
|
public function __construct(array $langs) {
|
|
$this->langs = $langs;
|
|
}
|
|
|
|
public function getLanguages(): array {
|
|
return $this->langs;
|
|
}
|
|
|
|
public function hasLanguage(string $lang): bool {
|
|
return in_array(strtolower($lang), $this->langs);
|
|
}
|
|
|
|
public static function parse(HttpHeader $header): ContentLanguageHeader {
|
|
return new ContentLanguageHeader(
|
|
array_unique(
|
|
array_map(
|
|
fn($directive) => trim($directive),
|
|
explode(',', strtolower($header->getFirstLine()))
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|