Erkundung der verschiedenen Einstellungen in TYPO3: Ein stufenweiser Ansatz
Als robustes Enterprise Content Management-System verwaltet TYPO3 seine Einstellungen und Konfigurationen an mehreren verschiedenen Stellen. Um das System effektiv verwalten zu können, ist es wichtig, diese verschiedenen Ebenen der Konfiguration zu verstehen.
Systemweite Einstellungen
Dies sind Einstellungen, die für die gesamte TYPO3-Installation relevant sind. Während TYPO3 tausende von verschiedenen Websites in einer einzigen Installation verwalten kann (erfahre mehr über Multisite Management), sind grundlegende Konfigurationen wie Bildverarbeitung, Datenbankzugangsdaten und E-Mail-Einstellungen Teil dieser systemweiten Einstellungen.
Entwickler können diese Einstellungen im Rahmen von Erweiterungen — TYPO3s Methode zur Verbesserung seiner Kernfunktionalität — ausbauen. Du kannst sogar eigene systemweite Konfigurationen einführen, die neben den Standardeinstellungen gespeichert werden.
Site-spezifische Einstellungen
Wenn du mehrere Websites mit einer einzigen TYPO3-Installation betreibst, sind standortspezifische Einstellungen von großem Nutzen. Bei b13 verwenden wir diese Einstellungen häufig, um bestimmte Speicherordner zu bestimmen, benutzerdefinierte CSS-Dateien zu integrieren oder verschiedene API-Tokens wie Google Recaptcha zu verwalten. Diese Site-Einstellungen können nahtlos in TypoScript-Konstanten umgewandelt werden, ein Feature, das sich als sehr praktisch erweist (weitere Details findest du unter TypoScript Site Settings in der offiziellen Dokumentation).
Pro-Seite-Einstellungen
TYPO3 organisiert den Inhalt innerhalb eines hierarchischen Seitenbaums, der die Definition oder das Überschreiben von Einstellungen auf der Ebene der Verzweigungen ermöglicht. Dies wird durch TypoScript-Einträge („sys_template“) in der Datenbank erreicht. Bei b13 ziehen wir es vor, die Verwendung von TypoScript-Einträgen einzuschränken, da sie nicht über Git, unser bevorzugtes Versionsverwaltungssystem, versionskontrolliert werden können. Stattdessen tendieren wir dazu, die meisten Funktionen in TypoScript-Dateien innerhalb von Erweiterungen einzubetten oder die „Site settings“ zu verwenden.
Frühere Dateispeicherorte für Systemeinstellungen in TYPO3
Seit der Veröffentlichung von TYPO3 v6.0 hieß die primäre Konfigurationsdatei für globale systemweite Einstellungen LocalConfiguration.php. Diese als PHP-Array strukturierte Datei war insofern einzigartig, als dass sie nie zwischengespeichert wurde und sich im Verzeichnis TYPO3conf/ innerhalb des öffentlichen Ordners befand. Der Inhalt dieser Datei wurde direkt in $GLOBALS[TYPO3_CONF_VARS] geladen. TYPO3 lud diese Datei immer, ohne sie zu cachen — ein nützlicher Vorteil. Plus: Wenn sie nicht vorhanden war, ging TYPO3 von einer frischen, neuen Installation aus.
Für Konfigurationen, die bedingungsbasierte Änderungen erforderten, gab es eine optionale Datei namens AdditionalConfiguration.php.
Damals, im Jahr 2012, war dieses Konfigurationssystem ein großer Schritt nach vorn. Allerdings war es auch nicht ohne Nachteile:
- Obwohl es sich um eine globale Konfigurationsdatei handelte, enthielt sie seltsamerweise das Wort „Local“ in ihrem Namen.
- Da es sich um eine reine PHP-Datei handelte, stellte sie ein potenzielles Sicherheitsrisiko dar, wenn sie außerhalb des öffentlichen Stammverzeichnisses des Webservers gespeichert wurde. Fehlkonfigurationen könnten zu schwerwiegenden Sicherheitslücken führen und Unbefugten den Zugriff auf diese Dateien ermöglichen.
Auch die Installationsmethode von TYPO3 hatte Einfluss auf die Dateispeicherorte. Bei der Installation von TYPO3 über den Composer („Composer-Modus“) befanden sich verschiedene Quellcodes, einschließlich der Konfigurationsdateien, außerhalb des Dokument-Stammordners, der normalerweise „public“, „web“ oder „htdocs“ heißt. Im Gegensatz dazu konnten im „klassischen Modus“, bei dem TYPO3 aus einem Tarball installiert und auf dem Server entpackt wird, PHP-Dateien nicht ohne weiteres außerhalb des Dokumentenstamms verschoben werden. Allerdings war es im klassischen Modus immer noch möglich, den Zugriff auf nicht-öffentliche Ordner mit Hilfe von .htaccess-Dateien zu beschränken.
Einführung des neuen Konfigurationsortes in TYPO3 v12
TYPO3 v9 markierte eine bedeutende Entwicklung mit der Einführung von Konfigurationsmöglichkeiten pro Site, die eine YAML-Datei zur Speicherung von Site-spezifischen Einstellungen und individuellen Konfigurationen verwenden. Im klassischen Modus von TYPO3 befindet sich diese Datei normalerweise unter TYPO3conf/sites/. Für diejenigen, die TYPO3 im Composer-Modus betreiben, wurde ein eigener Konfigurationsordner eingeführt, der in der Regel neben dem Ordner public oder htdocs liegt.
Mit der Einführung von TYPO3 v12 gibt es eine bemerkenswerte Veränderung in der Art und Weise, wie systemweite Konfigurationen gehandhabt werden. Diese Konfigurationen wurden nun an einem zentralen Ort zusammengefasst, in einem neu erstellten Ordner namens /system/, der sich unter dem Hauptkonfigurationsverzeichnis befindet. Diese Änderung vereinfacht nicht nur den Konfigurationsprozess, sondern entspricht auch den heutigen Anforderungen von TYPO3-Administratoren und Entwicklern.
Für den Composer Mode:
{project-root}/config/system/settings.php (previously LocalConfiguration.php)
{project-root}/config/system/additional.php (previously AdditionalConfiguration.php)
Für den Classic Mode:
{project-root}/htdocs/typo3conf/system/settings.php (previously LocalConfiguration.php)
{project-root}/htdocs/typo3conf/system/additional.php (previously AdditionalConfiguration.php)