Total Complexity | 8 |
Total Lines | 59 |
Duplicated Lines | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
19 | final class HttpStatusCode |
||
20 | { |
||
21 | |||
22 | /** |
||
23 | * @var array<array{code: int, description: string}> |
||
24 | */ |
||
25 | private static array $codes = []; |
||
26 | |||
27 | private int $code; |
||
28 | private string $description; |
||
29 | |||
30 | public function __construct(int $statusCode) |
||
31 | { |
||
32 | $statusCodesJson = file_get_contents(__DIR__ . "/http_codes.json"); |
||
33 | $code = null; |
||
34 | |||
35 | if ($statusCodesJson) { |
||
36 | self::$codes = json_decode($statusCodesJson, true); |
||
37 | $code = $this->search($statusCode); |
||
38 | } |
||
39 | |||
40 | |||
41 | if (!$code) { |
||
42 | $this->code = $statusCode; |
||
43 | $this->description = "Unknown HTTP status code: $statusCode"; |
||
44 | return; |
||
45 | } |
||
46 | $this->code = $code['code']; |
||
47 | $this->description = $code['description']; |
||
48 | } |
||
49 | |||
50 | /** |
||
51 | * @return int |
||
52 | */ |
||
53 | public function code(): int |
||
56 | } |
||
57 | |||
58 | /** |
||
59 | * @return string |
||
60 | */ |
||
61 | public function description(): string |
||
64 | } |
||
65 | |||
66 | /** |
||
67 | * @param int $statusCode |
||
68 | * @return array{code: int, description: string}|null |
||
69 | */ |
||
70 | private function search(int $statusCode): ?array |
||
78 | } |
||
79 | } |
||
80 |