[FEATURE] Introduce RouteEnhancers for Page-based Routing
Page-based routing can now be configured within a site configuration to add so-called "route enhancers" which allow to add more placeholders to a route for a page. There are three Enhancers that TYPO3 now ships with: - SimpleEnhancer - PluginEnhancer - ExtbasePluginEnhancer It is also possible to add custom enhancers by third- party extensions. Each placeholder within an enhancer can receive a so-called "Aspect", usually used for mapping speaking values instead of IDs, or month-names in an archive link, and "modifiers" to modify a placeholder. The simple enhancer transfers a link parameter, previously maybe used to add a `&product=123`, which will now result into `/product/123` for a page. PluginEnhancer adds a namespace, common for simple plugins or Pi-Based plugins, and the ExtbasePluginEnhancer adds logic for multiple route variants to be added, depending on the controller/action combinations. Aspects are processors / modifiers / mappers to transfer a placeholder value back & forth to make each placeholder value more "speaking". TYPO3 Core ships with the following aspects: * LocaleModifier (for localized path segments) * StaticValueMapper (for path segments with a static list) * StaticRangeMapper (for pagination) * PersistedAliasMapper (for slug fields) * PersistedPatternMapper (for database records without slug fields) Routing now returns a so-called "PageArguments" object which is then used for evaluating site-based URL handling and the cHash calculation. It is highly discouraged to access _GET or _POST variables within any kind of code now, instead the PSR-7 request object should be used as much as possible. Releases: master Resolves: #86365 Change-Id: I77e001a5790f1ab3bce75695ef0e1615411e2bd9 Reviewed-on: https://review.typo3.org/58384 Tested-by:TYPO3com <no-reply@typo3.com> Reviewed-by:
Susanne Moog <susanne.moog@typo3.org> Tested-by:
Susanne Moog <susanne.moog@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org>
Showing
- typo3/sysext/core/Classes/Routing/Aspect/AspectFactory.php 105 additions, 0 deletionstypo3/sysext/core/Classes/Routing/Aspect/AspectFactory.php
- typo3/sysext/core/Classes/Routing/Aspect/AspectInterface.php 24 additions, 0 deletionstypo3/sysext/core/Classes/Routing/Aspect/AspectInterface.php
- typo3/sysext/core/Classes/Routing/Aspect/DelegateInterface.php 48 additions, 0 deletions.../sysext/core/Classes/Routing/Aspect/DelegateInterface.php
- typo3/sysext/core/Classes/Routing/Aspect/LocaleModifier.php 101 additions, 0 deletionstypo3/sysext/core/Classes/Routing/Aspect/LocaleModifier.php
- typo3/sysext/core/Classes/Routing/Aspect/MappableAspectInterface.php 35 additions, 0 deletions...t/core/Classes/Routing/Aspect/MappableAspectInterface.php
- typo3/sysext/core/Classes/Routing/Aspect/MappableProcessor.php 99 additions, 0 deletions.../sysext/core/Classes/Routing/Aspect/MappableProcessor.php
- typo3/sysext/core/Classes/Routing/Aspect/ModifiableAspectInterface.php 29 additions, 0 deletions...core/Classes/Routing/Aspect/ModifiableAspectInterface.php
- typo3/sysext/core/Classes/Routing/Aspect/PersistedAliasMapper.php 197 additions, 0 deletions...sext/core/Classes/Routing/Aspect/PersistedAliasMapper.php
- typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php 232 additions, 0 deletions...xt/core/Classes/Routing/Aspect/PersistedPatternMapper.php
- typo3/sysext/core/Classes/Routing/Aspect/PersistenceDelegate.php 98 additions, 0 deletions...ysext/core/Classes/Routing/Aspect/PersistenceDelegate.php
- typo3/sysext/core/Classes/Routing/Aspect/StaticMappableAspectInterface.php 24 additions, 0 deletions.../Classes/Routing/Aspect/StaticMappableAspectInterface.php
- typo3/sysext/core/Classes/Routing/Aspect/StaticRangeMapper.php 147 additions, 0 deletions.../sysext/core/Classes/Routing/Aspect/StaticRangeMapper.php
- typo3/sysext/core/Classes/Routing/Aspect/StaticValueMapper.php 123 additions, 0 deletions.../sysext/core/Classes/Routing/Aspect/StaticValueMapper.php
- typo3/sysext/core/Classes/Routing/Enhancer/AbstractEnhancer.php 104 additions, 0 deletions...sysext/core/Classes/Routing/Enhancer/AbstractEnhancer.php
- typo3/sysext/core/Classes/Routing/Enhancer/EnhancerFactory.php 66 additions, 0 deletions.../sysext/core/Classes/Routing/Enhancer/EnhancerFactory.php
- typo3/sysext/core/Classes/Routing/Enhancer/EnhancerInterface.php 53 additions, 0 deletions...ysext/core/Classes/Routing/Enhancer/EnhancerInterface.php
- typo3/sysext/core/Classes/Routing/Enhancer/PluginEnhancer.php 189 additions, 0 deletions...3/sysext/core/Classes/Routing/Enhancer/PluginEnhancer.php
- typo3/sysext/core/Classes/Routing/Enhancer/ResultingInterface.php 35 additions, 0 deletions...sext/core/Classes/Routing/Enhancer/ResultingInterface.php
- typo3/sysext/core/Classes/Routing/Enhancer/SimpleEnhancer.php 134 additions, 0 deletions...3/sysext/core/Classes/Routing/Enhancer/SimpleEnhancer.php
- typo3/sysext/core/Classes/Routing/Enhancer/VariableProcessor.php 406 additions, 0 deletions...ysext/core/Classes/Routing/Enhancer/VariableProcessor.php
Please register or sign in to comment