Seit TYPO3 13 gehören Site Sets zum Standardwerkzeug für Integratoren.
Mit TYPO3 14 LTS sind sie fester Bestandteil moderner Site Packages –
inklusive Site Settings, optionaler Abhängigkeiten und neuer Features wie
Route Enhancers in Sets. Wer noch mit Static Includes und
sys_template-Ketten arbeitet, sollte den Umstieg planen.
Was sind Site Sets?
Site Sets sind zusammensetzbare Konfigurationsbausteine für
den Scope einer Site. Eine Extension (oder ein Site Package) liefert einen
oder mehrere Sets unter Configuration/Sets/. Jedes Set kann
mitbringen:
- TypoScript Setup und Constants
- Page TSconfig
- Site Settings (inkl. Schema und Defaults)
- Abhängigkeiten zu anderen Sets
- seit TYPO3 14.1 auch Route Enhancers
Im Unterschied zu klassischen Static Includes werden Sets über die Site-Konfiguration aktiviert – nicht über Template-Datensätze im Seitenbaum. TYPO3 löst Abhängigkeiten rekursiv auf, sortiert sie und dedupliziert sie. So landet TypoScript nicht mehrfach in der Kette, nur weil mehrere Sets dieselbe Abhängigkeit brauchen.
Warum Sets statt Static Includes?
Früher steckte die Frontend-Konfiguration oft in
sys_template-Records und langen Include-Listen. Das war
fehleranfällig: Reihenfolge manuell pflegen, doppelte Includes, unklare
Abhängigkeiten zwischen Extensions. Sets lösen das strukturell:
-
Explizite Dependencies: Abhängigkeiten stehen in
config.yaml, nicht versteckt in TypoScript. - Automatische Ordnung: TYPO3 lädt Sets in der richtigen Reihenfolge und ohne Duplikate.
- Site Settings statt Constants-Chaos: typisierte Settings mit Defaults und Backend-Editor im Sites-Modul.
- Wiederverwendbar: ein Set kann mehreren Sites zugewiesen werden – ideal für Multi-Site-Projekte.
So baut man ein Set
Jedes Set liegt in einem eigenen Ordner unter
Configuration/Sets/ und braucht mindestens eine
config.yaml:
# EXT:my_sitepackage/Configuration/Sets/MySitepackage/config.yaml
name: my-vendor/my-sitepackage
label: 'My Sitepackage'
dependencies:
- typo3/fluid-styled-content
- typo3/fluid-styled-content-css
optionalDependencies:
- typo3/form
Der name folgt dem Composer-Schema
vendor/package und identifiziert das Set eindeutig – er muss
nicht dem Extension-Key entsprechen. dependencies sind
Pflichtabhängigkeiten; fehlen sie, meldet das Set einen Fehler.
optionalDependencies werden nur geladen, wenn die Extension
installiert ist (ähnlich wie Composer suggest).
Typische Dateien neben der config.yaml:
-
setup.typoscript/constants.typoscript– Frontend-TypoScript page.tsconfig– Backend-TSconfig für Seiten der Site-
settings.definitions.yaml– Schema und Defaults für Site Settings -
settings.yaml– Overrides für Settings abhängiger Sets -
route-enhancers.yaml– Routing-Presets (ab TYPO3 14.1)
Set einer Site zuweisen
Sets werden in der Site-Konfiguration unter
dependencies eingetragen – im Backend unter
Sites → Setup oder direkt in der YAML:
# config/sites/my-site/config.yaml
base: 'https://example.com/'
rootPageId: 1
dependencies:
- my-vendor/my-sitepackage
Welche Sets verfügbar sind, zeigt der Console-Befehl:
vendor/bin/typo3 site:sets:list
Wichtig bei gemischten Setups: Wenn noch ein TypoScript-Template
(sys_template) parallel aktiv ist, muss die Checkbox
„Clear“ für Constants und Setup deaktiviert sein – sonst werden die
Set-Inhalte verworfen.
Site Settings: typisierte Konfiguration
Settings ersetzen viele bisherige TypoScript-Constants. In
settings.definitions.yaml definieren Sie Typ, Label und
Default – redaktionell steuerbar im Site-Settings-Editor:
# settings.definitions.yaml
categories:
MySitepackage:
label: 'Sitepackage'
settings:
MySitepackage.favicon:
label: 'Favicon'
category: MySitepackage
type: string
default: 'EXT:my_sitepackage/Resources/Public/Icons/favicon.ico'
MySitepackage.footerMenuRoot:
label: 'Footer-Menü (Seiten-ID)'
category: MySitepackage
type: int
default: 0
Im TypoScript greifen Sie mit der gewohnten Constants-Syntax zu – Site Settings überschreiben dabei Set-Constants:
page = PAGE
page {
shortcutIcon = {$MySitepackage.favicon}
10 = PAGEVIEW
10 {
dataProcessing {
40 = menu
40 {
as = footerMenu
special = directory
special.value = {$MySitepackage.footerMenuRoot}
}
}
}
}
Geänderte Werte landen in
config/sites/<site>/settings.yaml. Defaults abhängiger
Sets (z. B. Fluid Styled Content) überschreiben Sie im eigenen Set
über settings.yaml.
Mehrere Sets pro Extension
Extensions können funktionale Bausteine als eigene Sets ausliefern –
etwa Basis-Setup, Styles und RSS getrennt. So aktivieren Integratoren nur,
was sie brauchen. Abhängigkeiten zwischen diesen Sets steuern die
Ladeordnung; Kreuz-Imports per @import zwischen Extensions
sollten Sie vermeiden und stattdessen Set-Dependencies nutzen. Lokale
@import-Statements innerhalb eines Sets bleiben sinnvoll.
Praxis-Tipps für Upgrades und Projekte
-
Site Packages auf Sets umstellen: TypoScript aus
Configuration/TypoScript/per@importins Set laden, Static Includes schrittweise entfernen. -
Core- und Extension-Sets nutzen (z. B.
typo3/fluid-styled-content), statt TypoScript manuell zu inkludieren. - Settings mit Vendor-Präfix benennen, damit Keys global eindeutig bleiben.
-
Hilfs-Sets, die nur intern gebraucht werden, mit
hidden: trueaus der Backend-Auswahl ausblenden. -
Bei TYPO3 14 gemeinsame Routing-Presets als
route-enhancers.yamlim Set ausliefern.
Fazit
Site Sets sind das moderne Rückgrat der Site-Konfiguration in TYPO3 13 und 14: klar versionierbar, wiederverwendbar und ohne die Fehleranfälligkeit klassischer Template-Includes. Wer Site Packages neu aufsetzt oder ein Upgrade plant, sollte Sets und Site Settings von Anfang an mitdenken – das spart später Pflegeaufwand und macht Multi-Site-Setups deutlich robuster.
Mehr zu TYPO3 14 LTS finden Sie im Beitrag TYPO3 14 LTS – Die Next Generation des Enterprise-CMS.