[9.x] Fix pushMiddlewareToGroup not working on Provider in My Package #42004
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
In continuation of bug #36604. I found the reason for this bug.
We want to dynamically connect Middleware in our package in the Service Provider:
But the Middleware is not executed if the package name starts with the letters a-k.
Reason:
In the /Illuminate/Foundation/Http/Kernel.php file, the syncMiddlewareToRouter method overwrites the Middleware list in the Router
In the /Illuminate/Routing/Router.php file the middlewareGroup method
The syncMiddlewareToRouter method is called in prependToMiddlewarePriority which calls /laravel/sanctum/src/SanctumServiceProvider.php after my ServiceProvider
Service providers are named in alphabetical order. If the package name starts with letters a-k Middleware Group is overwritten. If the package name begins with the letters m-z, everything works.
Solution:
If rewriting the middleware group is not required, then you can change the middlewareGroup method in /Illuminate/Routing/Router.php
Please add to the framework if I'm right.