@@ -309,42 +309,60 @@ private function createFilter(string $className): FilterInterface
309
309
}
310
310
311
311
/**
312
- * Runs "Required Filters" for the specified position.
313
- *
314
- * @return RequestInterface|ResponseInterface|string|null
312
+ * Returns the "Required Filters" class list.
315
313
*
316
314
* @phpstan-param 'before'|'after' $position
317
315
*
318
- * @throws FilterException
319
- *
320
- * @internal
316
+ * @return list<array{0: class-string, 1: list<string>}> [[classname, arguments], ...]
321
317
*/
322
- public function runRequired (string $ position = ' before ' )
318
+ public function getRequiredClasses (string $ position): array
323
319
{
324
320
[$ filters , $ aliases ] = $ this ->getRequiredFilters ($ position );
325
321
326
322
if ($ filters === []) {
327
- return $ position === ' before ' ? $ this -> request : $ this -> response ;
323
+ return [] ;
328
324
}
329
325
330
326
$ filterClasses = [];
331
327
332
328
foreach ($ filters as $ alias ) {
333
329
if (is_array ($ aliases [$ alias ])) {
334
330
foreach ($ this ->config ->aliases [$ alias ] as $ class ) {
335
- $ filterClasses [$ position ][ ] = [$ class , []];
331
+ $ filterClasses [] = [$ class , []];
336
332
}
337
333
} else {
338
- $ filterClasses [$ position ][ ] = [$ aliases [$ alias ], []];
334
+ $ filterClasses [] = [$ aliases [$ alias ], []];
339
335
}
340
336
}
341
337
338
+ return $ filterClasses ;
339
+ }
340
+
341
+ /**
342
+ * Runs "Required Filters" for the specified position.
343
+ *
344
+ * @phpstan-param 'before'|'after' $position
345
+ *
346
+ * @return RequestInterface|ResponseInterface|string|null
347
+ *
348
+ * @throws FilterException
349
+ *
350
+ * @internal
351
+ */
352
+ public function runRequired (string $ position = 'before ' )
353
+ {
354
+ $ filterClasses = $ this ->getRequiredClasses ($ position );
355
+
356
+ if ($ filterClasses === []) {
357
+ return $ position === 'before ' ? $ this ->request : $ this ->response ;
358
+ }
359
+
342
360
if ($ position === 'before ' ) {
343
- return $ this ->runBefore ($ filterClasses[ $ position ] );
361
+ return $ this ->runBefore ($ filterClasses );
344
362
}
345
363
346
364
// After
347
- return $ this ->runAfter ($ filterClasses[ $ position ] );
365
+ return $ this ->runAfter ($ filterClasses );
348
366
}
349
367
350
368
/**
0 commit comments