@@ -29,6 +29,27 @@ public function __construct(int $statusCode, string $message = '', \Throwable $p
29
29
parent ::__construct ($ message , $ code , $ previous );
30
30
}
31
31
32
+ public static function fromStatusCode (int $ statusCode , string $ message = '' , \Throwable $ previous = null , array $ headers = [], int $ code = 0 ): self
33
+ {
34
+ return match ($ statusCode ) {
35
+ 400 => new BadRequestHttpException ($ message , $ previous , $ code , $ headers ),
36
+ 403 => new AccessDeniedHttpException ($ message , $ previous , $ code , $ headers ),
37
+ 404 => new NotFoundHttpException ($ message , $ previous , $ code , $ headers ),
38
+ 406 => new NotAcceptableHttpException ($ message , $ previous , $ code , $ headers ),
39
+ 409 => new ConflictHttpException ($ message , $ previous , $ code , $ headers ),
40
+ 410 => new GoneHttpException ($ message , $ previous , $ code , $ headers ),
41
+ 411 => new LengthRequiredHttpException ($ message , $ previous , $ code , $ headers ),
42
+ 412 => new PreconditionFailedHttpException ($ message , $ previous , $ code , $ headers ),
43
+ 423 => new LockedHttpException ($ message , $ previous , $ code , $ headers ),
44
+ 415 => new UnsupportedMediaTypeHttpException ($ message , $ previous , $ code , $ headers ),
45
+ 422 => new UnprocessableEntityHttpException ($ message , $ previous , $ code , $ headers ),
46
+ 428 => new PreconditionRequiredHttpException ($ message , $ previous , $ code , $ headers ),
47
+ 429 => new TooManyRequestsHttpException (null , $ message , $ previous , $ code , $ headers ),
48
+ 503 => new ServiceUnavailableHttpException (null , $ message , $ previous , $ code , $ headers ),
49
+ default => new static ($ statusCode , $ message , $ previous , $ headers , $ code ),
50
+ };
51
+ }
52
+
32
53
public function getStatusCode (): int
33
54
{
34
55
return $ this ->statusCode ;
0 commit comments