[Routing] Optional placeholders anywhere in the pattern #112
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.
I encountered a limitation with optional placeholders.
Currently they are available only in the end of the pattern, e.g.:
/static/optional1/optional2/optional3/ or /optional1/optional2/
However this limits the usage of optional placeholders and is solvable only with multiple patterns which looks ugly if you have many of them.
One of the use cases:
/products/{optional_culture}/{optional_category1}/{optional_category2}/{optional_category3}/{product_id}
This pull requests adds support for having as many optional placeholders in any order it is needed.
If you want to create an optional placeholder, it is needed to specify default value for it as it was before. However in these use cases you might want to have empty default value, so support for an empty default string value was added. Before it was not possible to assign empty string as a default placeholder value.
I don't know if this is a thing that has to be in the core, it could be separated as a custom route compiler, however I would like to get your comments on this one.