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());