-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStatus.php
More file actions
207 lines (198 loc) · 7.76 KB
/
Status.php
File metadata and controls
207 lines (198 loc) · 7.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?php
/**
* This file is part of the Vection package.
*
* (c) David M. Lung <vection@davidlung.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Vection\Component\Http;
use RuntimeException;
/**
* Class Status
*
* @package Vection\Component\Http
*
* @author David M. Lung <vection@davidlung.de>
*/
class Status
{
public const PHRASE_100 = 'Continue';
public const PHRASE_101 = 'Switching Protocols';
public const PHRASE_102 = 'Processing';
public const PHRASE_200 = 'OK';
public const PHRASE_201 = 'Created';
public const PHRASE_202 = 'Accepted';
public const PHRASE_203 = 'Non-Authoritative Information';
public const PHRASE_204 = 'No Content';
public const PHRASE_205 = 'Reset Content';
public const PHRASE_206 = 'Partial Content';
public const PHRASE_207 = 'Multi-status';
public const PHRASE_208 = 'Already Reported';
public const PHRASE_300 = 'Multiple Choices';
public const PHRASE_301 = 'Moved Permanently';
public const PHRASE_302 = 'Found';
public const PHRASE_303 = 'See Other';
public const PHRASE_304 = 'Not Modified';
public const PHRASE_305 = 'Use Proxy';
public const PHRASE_306 = 'Switch Proxy';
public const PHRASE_307 = 'Temporary Redirect';
public const PHRASE_400 = 'Bad Request';
public const PHRASE_401 = 'Unauthorized';
public const PHRASE_402 = 'Payment Required';
public const PHRASE_403 = 'Forbidden';
public const PHRASE_404 = 'Not Found';
public const PHRASE_405 = 'Method Not Allowed';
public const PHRASE_406 = 'Not Acceptable';
public const PHRASE_407 = 'Proxy Authentication Required';
public const PHRASE_408 = 'Request Time-out';
public const PHRASE_409 = 'Conflict';
public const PHRASE_410 = 'Gone';
public const PHRASE_411 = 'Length Required';
public const PHRASE_412 = 'Precondition Failed';
public const PHRASE_413 = 'Request Entity Too Large';
public const PHRASE_414 = 'Request-URI Too Large';
public const PHRASE_415 = 'Unsupported Media Type';
public const PHRASE_416 = 'Requested range not satisfiable';
public const PHRASE_417 = 'Expectation Failed';
public const PHRASE_418 = 'I\'m a teapot';
public const PHRASE_422 = 'Unprocessable Entity';
public const PHRASE_423 = 'Locked';
public const PHRASE_424 = 'Failed Dependency';
public const PHRASE_425 = 'Unordered Collection';
public const PHRASE_426 = 'Upgrade Required';
public const PHRASE_428 = 'Precondition Required';
public const PHRASE_429 = 'Too Many Requests';
public const PHRASE_431 = 'Request Header Fields Too Large';
public const PHRASE_451 = 'Unavailable For Legal Reasons';
public const PHRASE_500 = 'Internal Server Error';
public const PHRASE_501 = 'Not Implemented';
public const PHRASE_502 = 'Bad Gateway';
public const PHRASE_503 = 'Service Unavailable';
public const PHRASE_504 = 'Gateway Time-out';
public const PHRASE_505 = 'HTTP Version not supported';
public const PHRASE_506 = 'Variant Also Negotiates';
public const PHRASE_507 = 'Insufficient Storage';
public const PHRASE_508 = 'Loop Detected';
public const PHRASE_511 = 'Network Authentication Required';
public const CODE_CONTINUE = 100;
public const CODE_SWITCHING_PROTOCOLS = 101;
public const CODE_PROCESSING = 102;
public const CODE_EARLY_HINTS = 103;
public const CODE_OK = 200;
public const CODE_CREATED = 201;
public const CODE_ACCEPTED = 202;
public const CODE_NON_AUTHORITATIVE_INFORMATION = 203;
public const CODE_NO_CONTENT = 204;
public const CODE_RESET_CONTENT = 205;
public const CODE_PARTIAL_CONTENT = 206;
public const CODE_MULTI_STATUS = 207;
public const CODE_ALREADY_REPORTED = 208;
public const CODE_IM_USED = 226;
public const CODE_MULTIPLE_CHOICES = 300;
public const CODE_MOVED_PERMANENTLY = 301;
public const CODE_FOUND = 302;
public const CODE_SEE_OTHER = 303;
public const CODE_NOT_MODIFIED = 304;
public const CODE_USE_PROXY = 305;
public const CODE_RESERVED = 306;
public const CODE_TEMPORARY_REDIRECT = 307;
public const CODE_PERMANENTLY_REDIRECT = 308;
public const CODE_BAD_REQUEST = 400;
public const CODE_UNAUTHORIZED = 401;
public const CODE_PAYMENT_REQUIRED = 402;
public const CODE_FORBIDDEN = 403;
public const CODE_NOT_FOUND = 404;
public const CODE_METHOD_NOT_ALLOWED = 405;
public const CODE_NOT_ACCEPTABLE = 406;
public const CODE_PROXY_AUTHENTICATION_REQUIRED = 407;
public const CODE_REQUEST_TIMEOUT = 408;
public const CODE_CONFLICT = 409;
public const CODE_GONE = 410;
public const CODE_LENGTH_REQUIRED = 411;
public const CODE_PRECONDITION_FAILED = 412;
public const CODE_REQUEST_ENTITY_TOO_LARGE = 413;
public const CODE_REQUEST_URI_TOO_LONG = 414;
public const CODE_UNSUPPORTED_MEDIA_TYPE = 415;
public const CODE_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
public const CODE_EXPECTATION_FAILED = 417;
public const CODE_I_AM_A_TEAPOT = 418;
public const CODE_MISDIRECTED_REQUEST = 421;
public const CODE_UNPROCESSABLE_ENTITY = 422;
public const CODE_LOCKED = 423;
public const CODE_FAILED_DEPENDENCY = 424;
public const PHRASES = [
100 => 'Continue',
101 => 'Switching Protocols',
102 => 'Processing',
200 => 'OK',
201 => 'Created',
202 => 'Accepted',
203 => 'Non-Authoritative Information',
204 => 'No Content',
205 => 'Reset Content',
206 => 'Partial Content',
207 => 'Multi-status',
208 => 'Already Reported',
300 => 'Multiple Choices',
301 => 'Moved Permanently',
302 => 'Found',
303 => 'See Other',
304 => 'Not Modified',
305 => 'Use Proxy',
306 => 'Switch Proxy',
307 => 'Temporary Redirect',
400 => 'Bad Request',
401 => 'Unauthorized',
402 => 'Payment Required',
403 => 'Forbidden',
404 => 'Not Found',
405 => 'Method Not Allowed',
406 => 'Not Acceptable',
407 => 'Proxy Authentication Required',
408 => 'Request Time-out',
409 => 'Conflict',
410 => 'Gone',
411 => 'Length Required',
412 => 'Precondition Failed',
413 => 'Request Entity Too Large',
414 => 'Request-URI Too Large',
415 => 'Unsupported Media Type',
416 => 'Requested range not satisfiable',
417 => 'Expectation Failed',
418 => 'I\'m a teapot',
422 => 'Unprocessable Entity',
423 => 'Locked',
424 => 'Failed Dependency',
425 => 'Unordered Collection',
426 => 'Upgrade Required',
428 => 'Precondition Required',
429 => 'Too Many Requests',
431 => 'Request Header Fields Too Large',
451 => 'Unavailable For Legal Reasons',
500 => 'Internal Server Error',
501 => 'Not Implemented',
502 => 'Bad Gateway',
503 => 'Service Unavailable',
504 => 'Gateway Time-out',
505 => 'HTTP Version not supported',
506 => 'Variant Also Negotiates',
507 => 'Insufficient Storage',
508 => 'Loop Detected',
511 => 'Network Authentication Required',
];
/**
* @param int $code
*
* @return string
*/
public static function getPhrase(int $code): string
{
if (!isset(self::PHRASES[$code])) {
throw new RuntimeException("Invalid HTTP status code ($code). ");
}
return self::PHRASES[$code];
}
}