TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,131 @@
.. include:: /Includes.rst.txt
.. _feature-107837-1732800000:
===============================================
Feature: #107837 - Route enhancers in site sets
===============================================
See :issue:`107837`
Description
===========
Site sets can now define route enhancers in a dedicated :file:`route-enhancers.yaml`
file. This allows extensions to provide route enhancers as part of their site set
configuration, which are automatically merged into the site configuration when
the set is used as a dependency.
The route enhancers from site sets are applied as presets. This means that
site-level route enhancer configuration takes precedence and can override
set-defined enhancers.
Usage
=====
Create a :file:`route-enhancers.yaml` file in your site set directory alongside
the :file:`config.yaml`:
.. code-block:: none
EXT:my_extension/Configuration/Sets/MySet/
├── config.yaml
└── route-enhancers.yaml
The file must contain a `routeEnhancers` key with the route enhancer definitions:
.. code-block:: yaml
:caption: EXT:my_extension/Configuration/Sets/MySet/route-enhancers.yaml
routeEnhancers:
MyEnhancer:
type: Simple
routePath: '/my-path/{param}'
aspects:
param:
type: StaticValueMapper
map:
value1: '1'
value2: '2'
The route enhancers file supports YAML imports, allowing you to split
configuration across multiple files:
.. code-block:: yaml
:caption: EXT:my_extension/Configuration/Sets/MySet/route-enhancers.yaml
imports:
- { resource: 'route-enhancers/*.yaml', glob: true }
routeEnhancers:
# Additional enhancers can be defined here
Merging behavior
================
Route enhancers from site sets are merged in dependency order. When a site
uses multiple sets, enhancers from earlier dependencies are loaded first,
and later sets can override them.
Site-level route enhancer configuration always takes precedence over
set-defined enhancers. This allows sites to customize or override
preset configurations from sets.
Example
-------
Given a site set with:
.. code-block:: yaml
:caption: EXT:my_extension/Configuration/Sets/MySet/route-enhancers.yaml
routeEnhancers:
PageType:
type: PageType
default: '0'
map:
feed.xml: '100'
And a site configuration with:
.. code-block:: yaml
:caption: config/sites/my-site/config.yaml
dependencies:
- my_extension/my-set
routeEnhancers:
PageType:
type: PageType
default: '100'
map:
rss.xml: '200'
The resulting configuration will be:
.. code-block:: yaml
routeEnhancers:
PageType:
type: PageType
default: '100'
map:
feed.xml: '100'
rss.xml: '200'
Scalar values from the site configuration override set-defined values,
while new keys are appended.
Impact
======
Extensions can now ship route enhancers as part of their site sets, providing
a streamlined way to configure routing for extension functionality. This is
particularly useful for extensions that require specific URL patterns, such
as sitemap extensions or API endpoints.
Invalid route enhancer configurations are handled gracefully: sets with
invalid :file:`route-enhancers.yaml` files are skipped and logged, similar
to other set validation errors.
.. index:: Frontend, YAML, ext:core