Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork5.2k
[Routing] Clarify route aliases examples with explicit route names#20688
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
@javiereguiluz this one could be merged to unlock#20638 |
I'm not sure about these changes. I think the previous description (old route + new route) was more clear. The new names (some route + alias to some route) could be less clear, especially the new route name. Including "alias" as part of the route alias is unnecessarily long in my opinion and could make some readers think that the route alias must contain that Let me ask@xabbuh and@OskarStark about this. Thanks! |
I can replace "alias" with "new", but it implies underlying use case: replacing the We can add a site note to mention the alias name is not mandatory to contain "alias" word. These changes are on purpose to clarify the behavior using the Attribute way to alias route. |
stof commentedFeb 26, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
If you want to replace, you will generaly define the route with the new name and add a BC alias for the old name (especially when you want to deprecate it). That was the main confusion with the existing example. |
welcoMattic commentedMar 4, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
I think we do not have to presume what users will do with route aliasing feature (e.g creating new route and create an alias with the old route name). Just showing how to generally use route aliasing with generic terms, and then users will adapt to their needs/preferences. WDYT? EDIT: I've update the PR by adding a small paragaph to explain clearly how route aliasing can be used to provide BC for renamed routes. |
Maybe it's me, but this looks very confusing: You create an alias ... and immediately deprecate it. The alias, being a new thing that you add, feels like the new route name, not the legacy route name. I still think we should use names like "new_route_name" and "original_route_name" or "legacy_route_name". It's true that this alias feature can be used in different ways, but I think we should focus on its main usage and use terms that are impossible to misunderstand. |
damienfern commentedMar 12, 2025 • edited by OskarStark
Loading Uh oh!
There was an error while loading.Please reload this page.
edited by OskarStark
Uh oh!
There was an error while loading.Please reload this page.
I understand@javiereguiluz POV because I had the same feeling about aliases. Isn't this a sign that aliases on routes are plugged in a wrong way ? IMHO, here is how it should be (a first draft, I don't know if it's doable): some_route_name:path:/some-pathcontroller:App\Controller\SomeController::indexalias:alias_to_some_route_name:# this outputs the following generic deprecation message:# Since acme/package 1.2: The "alias_to_some_route_name" route alias is deprecated. You should stop using it, as it will be removed in the future.deprecated:package:'acme/package'version:'1.2' |
Jean-Beru commentedApr 7, 2025 • edited by OskarStark
Loading Uh oh!
There was an error while loading.Please reload this page.
edited by OskarStark
Uh oh!
There was an error while loading.Please reload this page.
IMO, theblog post explains clearly the concept of deprecating a route. We could update the documentation in that way. eg: My current route. some_route_name:path:/some-pathcontroller:App\Controller\SomeController::index I want to deprecate it in favor of some_route_name:alias:new_route_name# this outputs the following generic deprecation message:# Since acme/package 1.2: The "some_route_name" route alias is deprecated. You should stop using it, as it will be removed in the future.deprecated:package:'acme/package'version:'1.2'new_route_name:path:/some-pathcontroller:App\Controller\SomeController::index |
b3c04b6
to662de62
CompareI've addressed comments, now examples are more explicit and I hope clearer: First code block with initial route definition # config/routes.yamlsome_route_name:path:/some-pathcontroller:App\Controller\SomeController::index Second code block with an alias to the initial route # config/routes.yamlsome_route_name:path:/some-pathcontroller:App\Controller\SomeController::indexnew_route_name:# "alias" option refers to the name of the route declared abovealias:some_route_name Third code block where we "invert" the alias to be able to deprecate the initial route # Move the concrete route definition under ``new_route_name``new_route_name:path:/some-pathcontroller:App\Controller\SomeController::index# Define the alias and the deprecation under the ``some_route_name`` definitionsome_route_name:alias:new_route_name# this outputs the following generic deprecation message:# Since acme/package 1.2: The "some_route_name" route alias is deprecated. You should stop using it, as it will be removed in the future.deprecated:package:'acme/package'version:'1.2'# or# you can also define a custom deprecation message (%alias_id% placeholder is available)deprecated:package:'acme/package'version:'1.2'message:'The "%alias_id%" route alias is deprecated. Do not use it anymore.' I've also rephrased text paragraphs before and after each code block to explicitly explain what is the goal in each code block. @javiereguiluz@Jean-Beru@damienfern@stof let me know if this version is good to you 🙏 |
Uh oh!
There was an error while loading.Please reload this page.
662de62
toa9e3f8b
CompareUh oh!
There was an error while loading.Please reload this page.
a9e3f8b
to34b59df
CompareUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Can we use something like |
@OskarStark thanks for you review. I've fixed minor comments and renamed example routes. I think we hit the most clear version we can:
|
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
19ac993
to35bff3a
CompareMerging this one will unlock#20638 and allow me to finish Route Alias documentation refreshing 🙏 |
@symfony/docs can we get another approval please? Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
The new docs are now super clear to me! Thanks a lot Mathieu for the patience during the review process.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
routing.rst Outdated
Route alias allow you to have multiple name for the same route: | ||
Route alias allows you to have multiple name for the same route | ||
and can be used to provide backward compatibility for routes that | ||
have been renamed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
should we mention that this BC is only for route generation ? If you inspect the_route
request attribute after url matching, the canonical name of the route will always be used here, not the name of an alias.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
👍 for me.
I think we could focus on this after complete update of Route Alias (including#20638)?
We could address this topic individually on Route Alias and Deprecation paragraphs to indicate in each case what will be the value of_route
requrest attribute.
The current PR is more about clarification of the existing documentation.
35bff3a
tobafc22e
Compare@symfony/docs comments addressed, ready to be merged 🎉 |
bafc22e
toa28b614
CompareThank you Mathieu. |
6556d97
intosymfony:6.4Uh oh!
There was an error while loading.Please reload this page.
Refers to#20638 (comment)
Actual examples for route aliasing are not crystal clear.
Now, examples in YAML, XML and PHP provide
This change will allow to provide another clear example for route aliasing using Attribute in#20638
cc@stof@damienfern