From 7c20a5f905dbe2dcb6023fb2cc1245edf6f9acd2 Mon Sep 17 00:00:00 2001 From: Snider Date: Wed, 4 Mar 2026 12:48:51 +0000 Subject: [PATCH] feat: process middleware aliases in all fire* methods Extracted processMiddleware() helper and added it to fireWebRoutes, fireAdminBooting, fireClientRoutes, fireApiRoutes, fireMcpRoutes, and fireConsoleBooting. Modules can now register middleware aliases via $event->middleware() on any lifecycle event consistently. Previously only fireApiRoutes processed middleware (added in prior commit), other methods silently ignored them despite the base LifecycleEvent class supporting it. Co-Authored-By: Virgil --- src/Core/LifecycleEventProvider.php | 33 +++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/Core/LifecycleEventProvider.php b/src/Core/LifecycleEventProvider.php index 5734f5f..c230553 100644 --- a/src/Core/LifecycleEventProvider.php +++ b/src/Core/LifecycleEventProvider.php @@ -244,6 +244,22 @@ class LifecycleEventProvider extends ServiceProvider }); } + /** + * Register middleware aliases collected by a lifecycle event. + * + * Every fire* method calls this so modules can register middleware + * aliases via `$event->middleware('alias', Class::class)` on any event. + */ + protected static function processMiddleware(Events\LifecycleEvent $event): void + { + /** @var \Illuminate\Routing\Router $router */ + $router = app('router'); + + foreach ($event->middlewareRequests() as [$alias, $class]) { + $router->aliasMiddleware($alias, $class); + } + } + /** * Fire WebRoutesRegistering and process collected requests. * @@ -263,6 +279,8 @@ class LifecycleEventProvider extends ServiceProvider $event = new WebRoutesRegistering; event($event); + static::processMiddleware($event); + // Process view namespace requests foreach ($event->viewRequests() as [$namespace, $path]) { if (is_dir($path)) { @@ -308,6 +326,8 @@ class LifecycleEventProvider extends ServiceProvider $event = new AdminPanelBooting; event($event); + static::processMiddleware($event); + // Process view namespace requests foreach ($event->viewRequests() as [$namespace, $path]) { if (is_dir($path)) { @@ -356,6 +376,8 @@ class LifecycleEventProvider extends ServiceProvider $event = new ClientRoutesRegistering; event($event); + static::processMiddleware($event); + // Process view namespace requests foreach ($event->viewRequests() as [$namespace, $path]) { if (is_dir($path)) { @@ -395,12 +417,7 @@ class LifecycleEventProvider extends ServiceProvider $event = new ApiRoutesRegistering; event($event); - // Process middleware alias requests - /** @var \Illuminate\Routing\Router $router */ - $router = app('router'); - foreach ($event->middlewareRequests() as [$alias, $class]) { - $router->aliasMiddleware($alias, $class); - } + static::processMiddleware($event); // Process route requests with api middleware foreach ($event->routeRequests() as $callback) { @@ -423,6 +440,8 @@ class LifecycleEventProvider extends ServiceProvider $event = new McpRoutesRegistering; event($event); + static::processMiddleware($event); + // Process route requests with mcp middleware foreach ($event->routeRequests() as $callback) { Route::middleware('mcp')->group($callback); @@ -458,6 +477,8 @@ class LifecycleEventProvider extends ServiceProvider $event = new ConsoleBooting; event($event); + static::processMiddleware($event); + // Process command requests if (! empty($event->commandRequests())) { $this->commands($event->commandRequests());