Sort routes by model binding in RouteCollection #53031
Closed
+88
−0
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.
Overview: This pull request addresses the route handling in Laravel's RouteCollection. It ensures that routes with model binding are properly prioritized during sorting.
Changes Made:
Implemented logic in RouteCollection.php to sort routes by their model binding. Routes without model bindings will now appear first, allowing for expected behavior when defining routes.
Specifically, routes like x/{param} should be placed after any routes with static segments, such as x/something, to function correctly.
Added comprehensive tests in RouteCollectionTests.php to validate the new sorting mechanism and ensure that the changes do not break existing functionality.
Benefits: This change improves the predictability of route resolution, especially in cases where static routes may conflict with dynamic model-bound routes.