Skip to content

Commit 7b8e12d

Browse files
authored
[12.x] Do not loop through middleware when excluded is empty (#54837)
* simplify resolving middleware * style * avoid loop above
1 parent cfc65ac commit 7b8e12d

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

src/Illuminate/Routing/Router.php

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -829,35 +829,35 @@ public function gatherRouteMiddleware(Route $route)
829829
*/
830830
public function resolveMiddleware(array $middleware, array $excluded = [])
831831
{
832-
$excluded = (new Collection($excluded))->map(function ($name) {
832+
$excluded = $excluded === [] ? $excluded : (new Collection($excluded))->map(function ($name) {
833833
return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
834834
})->flatten()->values()->all();
835835

836836
$middleware = (new Collection($middleware))->map(function ($name) {
837837
return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
838-
})->flatten()->reject(function ($name) use ($excluded) {
839-
if (empty($excluded)) {
840-
return false;
841-
}
842-
843-
if ($name instanceof Closure) {
844-
return false;
845-
}
846-
847-
if (in_array($name, $excluded, true)) {
848-
return true;
849-
}
850-
851-
if (! class_exists($name)) {
852-
return false;
853-
}
854-
855-
$reflection = new ReflectionClass($name);
856-
857-
return (new Collection($excluded))->contains(
858-
fn ($exclude) => class_exists($exclude) && $reflection->isSubclassOf($exclude)
859-
);
860-
})->values();
838+
})->flatten()
839+
->when(
840+
! empty($excluded),
841+
fn ($collection) => $collection->reject(function ($name) use ($excluded) {
842+
if ($name instanceof Closure) {
843+
return false;
844+
}
845+
846+
if (in_array($name, $excluded, true)) {
847+
return true;
848+
}
849+
850+
if (! class_exists($name)) {
851+
return false;
852+
}
853+
854+
$reflection = new ReflectionClass($name);
855+
856+
return (new Collection($excluded))->contains(
857+
fn ($exclude) => class_exists($exclude) && $reflection->isSubclassOf($exclude)
858+
);
859+
})
860+
)->values();
861861

862862
return $this->sortMiddleware($middleware);
863863
}

0 commit comments

Comments
 (0)