Ein neues Zuhause für die Systemkonfiguration von TYPO3 in TYPO3 v12

|Benni Mack
Beitragsbild für Artikel A new home for TYPO3’s system configuration in TYPO3 v12

TYPO3 Version 12 bringt eine Reihe von Änderungen mit sich, die sich sowohl auf die Konfiguration des Systems als auch auf die Benutzeroberfläche des Editors auswirken. Ein Hauptziel dieser Aktualisierungen ist es, die Lernkurve für Neueinsteiger zu vereinfachen.

In diesem Artikel befassen wir uns mit den Änderungen an den Systemkonfigurationsdateien. Unser Fokus liegt dabei auf zwei Aspekten: Zum einen möchten wir bestehende Site-Administratoren bei der Navigation durch diese Änderungen unterstützen und zum anderen eine klare Einführung für diejenigen bieten, die zum ersten Mal mit TYPO3 in Kontakt kommen.

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 (erfahren Sie 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. Sie können 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 finden Sie 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)

Umstellung auf die neue Konfiguration in TYPO3 v12

Die Migration auf TYPO3 v12 ist dank des intelligenten Designs, das den Migrationsprozess automatisiert, ein Kinderspiel. Wenn du zum ersten Mal auf das TYPO3 v12 Installationstool oder das Wartungsmodul zugreifst, verschiebt das System automatisch die betroffenen Einstellungsdateien an den neuen Speicherort. Dieser nahtlose Übergang bedeutet, dass keine manuellen Eingriffe erforderlich sind und du dir keine Sorgen machen musst.

Wichtiger Hinweis für Git-Benutzer:

Wenn du Git als Versionskontrollsystem verwendest, ist möglicherweise ein Update deiner .gitignore-Datei erforderlich. Mit dem Übergang zu TYPO3 v12 wird das Verzeichnis typo3conf/ im Composer-Modus obsolet. Aus diesem Grund solltest du alle Verweise auf typo3conf/ aus deiner .gitignore-Datei entfernen, um diese Änderung zu berücksichtigen. Dadurch wird sichergestellt, dass deine Versionskontroll-Einrichtung mit der aktualisierten TYPO3-Struktur übereinstimmt.

Die Vorteile des Konfigurations-Updates von TYPO3 v12

Das jüngste Update in TYPO3 v12 bringt eine deutliche Verbesserung in der Verwaltung der Systemeinstellungen. Die neue Namenskonvention und der neue Speicherort der Datei spiegeln genau ihren Zweck wider: Einstellungen zu speichern, die für die gesamte Installation gelten. Diese Klarheit steht in krassem Gegensatz zur historischen LocalConfiguration.php, einem Namen, der aus einer Zeit stammt, als TYPO3-Konfigurationen noch auf lokale Installationen in Shared Hosting-Umgebungen zugeschnitten waren. Dieses Relikt von vor zwei Jahrzehnten ist nun ersetzt und vereinfacht den Erklärungsprozess für neue Benutzer.

Erhöhte Sicherheit im Composer-Modus

Die Einführung des Composer-Modus in TYPO3 v12 bringt eine zusätzliche Sicherheitsebene. Die Benutzer werden ein deutlich entschlacktes öffentliches Webroot vorfinden. Dank des neuen "typo3/cms-composer-installers"-Plugins werden nun alle nicht-essentiellen PHP-Dateien und -Konfigurationen außerhalb des Dokument-Root verschoben. Diese strategische Verlagerung erhöht die Sicherheit erheblich, da der Kern des Systems nur über bestimmte PHP-Dateien als Einstiegspunkt zugänglich ist. Eine solche Struktur reduziert von Natur aus Schwachstellen und stärkt die Installation.

Nahtlose Integration mit b13/typo3-config

Für diejenigen, die TYPO3 in Verbindung mit Git und CI/CD-Pipelines einsetzen, kann die Verwaltung unterschiedlicher Einstellungen in verschiedenen Umgebungen eine Herausforderung darstellen. Wir von b13 haben diesen Bedarf erkannt und eine schlanke Lösung entwickelt: die b13/typo3-config PHP-Bibliothek. Dieses Tool wurde entwickelt, um deinen Arbeitsablauf erheblich zu vereinfachen.

Dieses Composer-Paket überschreibt Ihre Standard-Einstellungsdatei mit kontextspezifischen Konfigurationen. Es verwendet einen anschaulicheren, flüssigeren und objektorientierten Ansatz für den Umgang mit allgemeinen Einstellungen. Das bedeutet, dass du dein TYPO3-Setup ganz einfach an verschiedene Entwicklungs-, Test- oder Produktionsumgebungen anpassen kannst, ohne die üblichen Probleme zu haben.

Die Integration von b13/typo3-config mit TYPO3 v12 schafft eine Synergie, die sowohl die Flexibilität als auch die Effizienz des Konfigurationsmanagements steigert. Sie ist ein Beispiel dafür, wie moderne Entwicklungspraktiken effektiv eingesetzt werden, um die Verwaltung von CMS-Plattformen auf Unternehmensebene wie TYPO3 reibungsloser und intuitiver zu gestalten.

Brauchst du Hilfe? Wir sind für dich da!

Wenn du immer noch Probleme mit dem Upgrade deiner Installation auf die nächste Version hast, meld dich bei uns, damit wir dir helfen können.

Get in touch.