Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
7 / 7 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
1 / 1 |
RequestHeader | |
100.00% |
7 / 7 |
|
100.00% |
1 / 1 |
3 | |
100.00% |
1 / 1 |
parseInput | |
100.00% |
7 / 7 |
|
100.00% |
1 / 1 |
3 |
1 | <?php declare(strict_types=1); |
2 | /* |
3 | * This file is part of Aplus Framework HTTP Library. |
4 | * |
5 | * (c) Natan Felles <natanfelles@gmail.com> |
6 | * |
7 | * For the full copyright and license information, please view the LICENSE |
8 | * file that was distributed with this source code. |
9 | */ |
10 | namespace Framework\HTTP; |
11 | |
12 | /** |
13 | * Class RequestHeader. |
14 | * |
15 | * @see https://developer.mozilla.org/en-US/docs/Glossary/Request_header |
16 | * |
17 | * @package http |
18 | */ |
19 | class RequestHeader extends Header |
20 | { |
21 | /** |
22 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept |
23 | * |
24 | * @var string |
25 | */ |
26 | public const ACCEPT = 'Accept'; |
27 | /** |
28 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Charset |
29 | * |
30 | * @var string |
31 | */ |
32 | public const ACCEPT_CHARSET = 'Accept-Charset'; |
33 | /** |
34 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding |
35 | * |
36 | * @var string |
37 | */ |
38 | public const ACCEPT_ENCODING = 'Accept-Encoding'; |
39 | /** |
40 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language |
41 | * |
42 | * @var string |
43 | */ |
44 | public const ACCEPT_LANGUAGE = 'Accept-Language'; |
45 | /** |
46 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers |
47 | * |
48 | * @var string |
49 | */ |
50 | public const ACCESS_CONTROL_REQUEST_HEADERS = 'Access-Control-Request-Headers'; |
51 | /** |
52 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Method |
53 | * |
54 | * @var string |
55 | */ |
56 | public const ACCESS_CONTROL_REQUEST_METHOD = 'Access-Control-Request-Method'; |
57 | /** |
58 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization |
59 | * |
60 | * @var string |
61 | */ |
62 | public const AUTHORIZATION = 'Authorization'; |
63 | /** |
64 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie |
65 | * |
66 | * @var string |
67 | */ |
68 | public const COOKIE = 'Cookie'; |
69 | /** |
70 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/DNT |
71 | * |
72 | * @var string |
73 | */ |
74 | public const DNT = 'DNT'; |
75 | /** |
76 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect |
77 | * |
78 | * @var string |
79 | */ |
80 | public const EXPECT = 'Expect'; |
81 | /** |
82 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded |
83 | * |
84 | * @var string |
85 | */ |
86 | public const FORWARDED = 'Forwarded'; |
87 | /** |
88 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/From |
89 | * |
90 | * @var string |
91 | */ |
92 | public const FROM = 'From'; |
93 | /** |
94 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host |
95 | * |
96 | * @var string |
97 | */ |
98 | public const HOST = 'Host'; |
99 | /** |
100 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match |
101 | * |
102 | * @var string |
103 | */ |
104 | public const IF_MATCH = 'If-Match'; |
105 | /** |
106 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since |
107 | * |
108 | * @var string |
109 | */ |
110 | public const IF_MODIFIED_SINCE = 'If-Modified-Since'; |
111 | /** |
112 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match |
113 | * |
114 | * @var string |
115 | */ |
116 | public const IF_NONE_MATCH = 'If-None-Match'; |
117 | /** |
118 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Range |
119 | * |
120 | * @var string |
121 | */ |
122 | public const IF_RANGE = 'If-Range'; |
123 | /** |
124 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since |
125 | * |
126 | * @var string |
127 | */ |
128 | public const IF_UNMODIFIED_SINCE = 'If-Unmodified-Since'; |
129 | /** |
130 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin |
131 | * |
132 | * @var string |
133 | */ |
134 | public const ORIGIN = 'Origin'; |
135 | /** |
136 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Proxy-Authorization |
137 | * |
138 | * @var string |
139 | */ |
140 | public const PROXY_AUTHORIZATION = 'Proxy-Authorization'; |
141 | /** |
142 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range |
143 | * |
144 | * @var string |
145 | */ |
146 | public const RANGE = 'Range'; |
147 | /** |
148 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer |
149 | * |
150 | * @var string |
151 | */ |
152 | public const REFERER = 'Referer'; |
153 | /** |
154 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest |
155 | * |
156 | * @var string |
157 | */ |
158 | public const SEC_FETCH_DEST = 'Sec-Fetch-Dest'; |
159 | /** |
160 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Mode |
161 | * |
162 | * @var string |
163 | */ |
164 | public const SEC_FETCH_MODE = 'Sec-Fetch-Mode'; |
165 | /** |
166 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Site |
167 | * |
168 | * @var string |
169 | */ |
170 | public const SEC_FETCH_SITE = 'Sec-Fetch-Site'; |
171 | /** |
172 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-User |
173 | * |
174 | * @var string |
175 | */ |
176 | public const SEC_FETCH_USER = 'Sec-Fetch-User'; |
177 | /** |
178 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/TE |
179 | * |
180 | * @var string |
181 | */ |
182 | public const TE = 'TE'; |
183 | /** |
184 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests |
185 | * |
186 | * @var string |
187 | */ |
188 | public const UPGRADE_INSECURE_REQUESTS = 'Upgrade-Insecure-Requests'; |
189 | /** |
190 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent |
191 | * |
192 | * @var string |
193 | */ |
194 | public const USER_AGENT = 'User-Agent'; |
195 | /** |
196 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For |
197 | * |
198 | * @var string |
199 | */ |
200 | public const X_FORWARDED_FOR = 'X-Forwarded-For'; |
201 | /** |
202 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host |
203 | * |
204 | * @var string |
205 | */ |
206 | public const X_FORWARDED_HOST = 'X-Forwarded-Host'; |
207 | /** |
208 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto |
209 | * |
210 | * @var string |
211 | */ |
212 | public const X_FORWARDED_PROTO = 'X-Forwarded-Proto'; |
213 | /** |
214 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Real-IP |
215 | * |
216 | * @var string |
217 | */ |
218 | public const X_REAL_IP = 'X-Real-IP'; |
219 | /** |
220 | * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Requested-With |
221 | * |
222 | * @var string |
223 | */ |
224 | public const X_REQUESTED_WITH = 'X-Requested-With'; |
225 | |
226 | /** |
227 | * @param array<string,scalar> $input |
228 | * |
229 | * @return array<string,string> |
230 | */ |
231 | public static function parseInput(array $input) : array |
232 | { |
233 | $headers = []; |
234 | foreach ($input as $name => $value) { |
235 | if (\str_starts_with($name, 'HTTP_')) { |
236 | $name = \strtr(\substr($name, 5), ['_' => '-']); |
237 | $name = static::getName($name); |
238 | $headers[$name] = (string) $value; |
239 | } |
240 | } |
241 | return $headers; |
242 | } |
243 | } |