Skip to content
Snippets Groups Projects
  • Benni Mack's avatar
    [FEATURE] Introduce RouteEnhancers for Page-based Routing · 4844fae6
    Benni Mack authored
    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: default avatarTYPO3com <no-reply@typo3.com>
    Reviewed-by: default avatarSusanne Moog <susanne.moog@typo3.org>
    Tested-by: default avatarSusanne Moog <susanne.moog@typo3.org>
    Reviewed-by: default avatarOliver Hader <oliver.hader@typo3.org>
    Tested-by: default avatarOliver Hader <oliver.hader@typo3.org>
    4844fae6