Skip to content
Snippets Groups Projects
Commit 4844fae6 authored by Benni Mack's avatar Benni Mack Committed by Oliver Hader
Browse files

[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: 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>
parent 8c225c61
Showing
with 2249 additions and 0 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment