@@ -46,8 +46,8 @@ final class Router
46
46
47
47
/**
48
48
* @param string $uri
49
- * @param class-string<RequestHandlerInterface>
50
- * @return Route
49
+ * @param class-string<RequestHandlerInterface> $controller
50
+ * @return Route
51
51
*/
52
52
public static function get (string $ uri , string $ controller ): Route
53
53
{
@@ -60,8 +60,8 @@ public static function get(string $uri, string $controller): Route
60
60
61
61
/**
62
62
* @param string $uri
63
- * @param class-string<RequestHandlerInterface>
64
- * @return Route
63
+ * @param class-string<RequestHandlerInterface> $controller
64
+ * @return Route
65
65
*/
66
66
public static function post (string $ uri , string $ controller ): Route
67
67
{
@@ -74,8 +74,8 @@ public static function post(string $uri, string $controller): Route
74
74
75
75
/**
76
76
* @param string $uri
77
- * @param class-string<RequestHandlerInterface>
78
- * @return Route
77
+ * @param class-string<RequestHandlerInterface> $controller
78
+ * @return Route
79
79
*/
80
80
public static function put (string $ uri , string $ controller ): Route
81
81
{
@@ -88,8 +88,8 @@ public static function put(string $uri, string $controller): Route
88
88
89
89
/**
90
90
* @param string $uri
91
- * @param class-string<RequestHandlerInterface>
92
- * @return Route
91
+ * @param class-string<RequestHandlerInterface> $controller
92
+ * @return Route
93
93
*/
94
94
public static function delete (string $ uri , string $ controller ): Route
95
95
{
@@ -102,8 +102,8 @@ public static function delete(string $uri, string $controller): Route
102
102
103
103
/**
104
104
* @param string $uri
105
- * @param class-string<RequestHandlerInterface>
106
- * @return Route
105
+ * @param class-string<RequestHandlerInterface> $controller
106
+ * @return Route
107
107
*/
108
108
public static function options (string $ uri , string $ controller ): Route
109
109
{
@@ -116,8 +116,8 @@ public static function options(string $uri, string $controller): Route
116
116
117
117
/**
118
118
* @param string $uri
119
- * @param class-string<RequestHandlerInterface>
120
- * @return Route
119
+ * @param class-string<RequestHandlerInterface> $controller
120
+ * @return Route
121
121
*/
122
122
public static function head (string $ uri , string $ controller ): Route
123
123
{
@@ -130,8 +130,8 @@ public static function head(string $uri, string $controller): Route
130
130
131
131
/**
132
132
* @param string $uri
133
- * @param class-string<RequestHandlerInterface>
134
- * @return Route
133
+ * @param class-string<RequestHandlerInterface> $controller
134
+ * @return Route
135
135
*/
136
136
public static function all (string $ uri , string $ controller ): Route
137
137
{
@@ -146,7 +146,7 @@ public static function all(string $uri, string $controller): Route
146
146
* @param Route $route
147
147
* @return void
148
148
*/
149
- public static function addRoute (Route & $ route ): void
149
+ public static function addRoute (Route $ route ): void
150
150
{
151
151
if (isset (self ::$ group )) {
152
152
foreach (self ::$ group ["middlewares " ] ?? [] as $ middlware ) {
@@ -169,12 +169,12 @@ public static function group(string $baseUri, Closure $grouping, array $middlewa
169
169
{
170
170
$ oldMount = self ::$ group ;
171
171
172
- if (empty (Router ::getBaseUri ())) {
172
+ if (empty (self ::getBaseUri ())) {
173
173
self ::$ group = compact ("baseUri " , "middlewares " , "postwares " );
174
174
} else {
175
175
self ::$ group ['baseUri ' ] .= $ baseUri ;
176
- self ::$ group ['middlewares ' ] = array_merge ( self ::$ group ['middlewares ' ], $ middlewares) ;
177
- self ::$ group ['postwares ' ] = array_merge ( self ::$ group ['postwares ' ], $ postwares) ;
176
+ self ::$ group ['middlewares ' ] = [... self ::$ group ['middlewares ' ], ... $ middlewares] ;
177
+ self ::$ group ['postwares ' ] = [... self ::$ group ['postwares ' ], ... $ postwares] ;
178
178
}
179
179
180
180
$ grouping ();
@@ -221,7 +221,7 @@ private static function resolveRoute(array $routes): ?ResolvedRoute
221
221
222
222
$ pattern = preg_replace ('/\/{(.*?)}/ ' , '/(.*?) ' , $ uri );
223
223
224
- return boolval ( preg_match_all ('#^ ' . $ pattern . '$# ' , $ requestUri , $ matches , PREG_OFFSET_CAPTURE ) );
224
+ return ( bool ) preg_match_all ('#^ ' . $ pattern . '$# ' , $ requestUri , $ matches , PREG_OFFSET_CAPTURE );
225
225
};
226
226
227
227
$ uri = explode ("? " , $ _SERVER ["REQUEST_URI " ])[0 ];
@@ -255,10 +255,13 @@ private static function resolveRoute(array $routes): ?ResolvedRoute
255
255
return $ resolvedRoute ?? null ;
256
256
}
257
257
258
- /**
259
- * @param class-string<Throwable> $exceptionToCatch
260
- * @param class-string<RequestHandlerInterface> $controller
261
- */
258
+
259
+ /**
260
+ * @param string $toCatch
261
+ * @param class-string $controller
262
+ * @param string|null $uri
263
+ * @return Route
264
+ */
262
265
public static function catch (string $ toCatch , string $ controller , ?string $ uri = "/(.*) " ): Route
263
266
{
264
267
$ catchable = array_keys (self ::$ catchers );
@@ -311,7 +314,7 @@ protected static function invokeRoute(
311
314
...$ resolvedRoute ->route ->getPostware ()
312
315
];
313
316
314
- $ next = function (
317
+ $ next = static function (
315
318
ServerRequestInterface $ request ,
316
319
ResponseInterface $ response ,
317
320
stdClass $ args
@@ -335,7 +338,7 @@ public static function run(EmitterInterface $emitter = null): void
335
338
{
336
339
self ::$ emitter = $ emitter ?? new SapiEmitter ();
337
340
338
- $ sortByLength = function (Route $ a , Route $ b ) {
341
+ $ sortByLength = static function (Route $ a , Route $ b ) {
339
342
return (strlen ($ a ->uri ) > strlen ($ b ->uri ));
340
343
};
341
344
@@ -356,7 +359,7 @@ public static function run(EmitterInterface $emitter = null): void
356
359
357
360
$ response = self ::invokeRoute ($ resolved , $ request );
358
361
} catch (Throwable $ e ) {
359
- if (in_array ($ e ::class, array_keys ( self ::$ catchers) )) {
362
+ if (array_key_exists ($ e ::class, self ::$ catchers )) {
360
363
$ resolved = self ::resolveRoute (self ::$ catchers [$ e ::class]);
361
364
} else {
362
365
$ resolved = self ::resolveRoute (self ::$ catchers [HttpInternalServerError::class] ?? []);
@@ -370,8 +373,7 @@ public static function run(EmitterInterface $emitter = null): void
370
373
$ class = $ e ::class;
371
374
372
375
$ method = match (self ::$ emitHttpExceptions ) {
373
- self ::EMIT_EMPTY_RESPONSE => "buildEmptyResponse " ,
374
- self ::EMIT_HTML_RESPONSE => "buildHtmlResponse " ,
376
+ self ::EMIT_HTML_RESPONSE => "buildHtmlResponse " ,
375
377
self ::EMIT_JSON_RESPONSE => "buildJsonResponse " ,
376
378
default => "buildEmptyResponse "
377
379
};
0 commit comments