index/src/Http/Headers/ContentLanguageHeader.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()))
)
)
);
}
}