Add support for additional where* methods to route groups #43731
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.
This PR addresses the change originally mentioned in #43509 and reverted in #43523.
Unlike the original PR, it adds support for all of the additional
where*
methods available on a route, to a route group, by adding theCreatesRegularExpressionRouteConstraints
trait.It works directly on the router, handled by
Router::__call
with an explicit check for beginning withwhere
, that proxies to the method. There is no check to see if the method exists, because if it does not, it will be passed to theRouteRegistrar::attributes
method automatically, so will achieve the same without the requirement for an additional condition.And on a
RouteRegistrar
, using the trait.This PR also adds 8 tests that test both of the approaches, as they are slightly different. No changes have been made to
RouteRegistrar::allowedAttributes
because the trait turns them intowhere
attributes.