Der TYPO3 Code Sprint in Hamburg vor wenigen Wochen hat einige großartige neue Funktionen unter der Haube hervorgebracht. TYPO3 Version 12.2 führt einen Message Bus und eine Message Queue ein, Verbesserungen für die Internationalisierung und die Unterstützung mehrerer Sprachen; zusammen mit Backend-UI-Verbesserungen gemäß der Entwicklungs-Roadmap.
Werfen wir einen genaueren Blick auf die wichtigsten Änderungen der neuen Version. Eine detaillierte technische Übersicht mit weiteren Informationen finden Sie unter docs.typo3.org.
Die wichtigsten Änderungen der TYPO3 Version 12.2
Backend-Modul Filelist
Das Backend-Modul File ➜ Filelist wurde in den Vorgängerversionen TYPO3 v11 und v12 mehrfach erweitert. In TYPO3 v12.1 haben wir die neue Kachelansicht eingeführt, die z.B. größere Vorschaubilder und weniger Details zu den Assets anzeigt. In dieser Version haben wir weitere Verbesserungen im Backend-Modul vorgenommen. Diese werden vor allem für Redakteure, die mit einer großen Anzahl von Dateien und Ordnern arbeiten, von großem Nutzen sein.
Drag & Drop von Objekten in der Baumstruktur
Das Verschieben von Objekten von einem Ordner in einen anderen ist jetzt viel intuitiver dank der neuen TYPO3-Funktion zum Verschieben und Kopieren von Dateien und Ordnern per Drag and Drop.
In früheren TYPO3-Versionen haben Sie in der Regel die Zwischenablage-Funktion verwendet, um Elemente zwischen Ordnern zu kopieren/verschieben. In TYPO3 Version 12.2 können Sie auf ein Element in der Dateiliste klicken, es in den Ordnerbaum ziehen und dann im Zielordner ablegen. Eine schnelle Aktion!
Das geht auch mit mehreren Objekten. Sie können mehrere Dateien oder Ordner markieren und mit derselben Funktion verschieben/kopieren.
Ordner erstellen
Wenn Sie viel mit Dateien und Ordnern arbeiten, wird es Sie freuen zu hören, dass das Erstellen neuer Ordner in TYPO3 Version 12.2 eleganter geworden ist. Anstatt eine neue Seite zu öffnen, öffnet das Modul nun ein modales Fenster, in dem Sie den Namen des neuen Ordners eingeben können. Sie können auch durch den Ordnerbaum auf der linken Seite scrollen, um schnell und einfach einen anderen übergeordneten Ordner auszuwählen.
Das neue Verfahren zum Erstellen von Ordnern in einem modalen Fenster ist einfach und unglaublich schnell. So schnell, dass die Option, mehrere Ordner gleichzeitig zu erstellen, entfernt wurde. Sobald das modale Fenster geschlossen wird, wird die Dateiliste automatisch aktualisiert, um die letzten Änderungen widerzuspiegeln.
Nachrichtenbus und Warteschlange
Die Systemarchitektur von TYPO3 besteht aus verschiedenen Komponenten wie Modulen und APIs. Damit diese Komponenten einheitlich arbeiten und kommunizieren können, wurde in TYPO3 Version 12.2 eine Basisimplementierung eines Nachrichtenbusses auf Basis des Symfony Messengers integriert. Vereinfacht ausgedrückt sendet eine Komponente eine Nachricht an einen Nachrichtenbus. Der Message Bus empfängt die Nachricht, speichert sie optional in einer Queue und leitet die Nachricht an einen Handler weiter.
Das Standardverhalten von TYPO3 ist die synchrone Verarbeitung von Nachrichten. Eine einfache Konfigurationsänderung schaltet das System auf asynchronen Transport um. In diesem Modus können Nachrichten, die sich in der Warteschlange befinden, zu einem späteren Zeitpunkt verarbeitet werden. Dies ist sehr praktisch, wenn eine Aufgabe einige Zeit in Anspruch nimmt und das System nicht warten kann oder will, bis die Aufgabe abgeschlossen ist.
Hier sind zwei praktische Beispiele, bei denen Entwickler und Lösungsarchitekten von der Message Queue in TYPO3 profitieren können.
Stellen Sie sich eine TYPO3-Installation vor, die mit Workspaces arbeitet - hier muss jede Inhaltsänderung genehmigt werden, bevor sie veröffentlicht werden kann. Wenn ein Inhalt von der Bearbeitungsphase in die Genehmigungsphase übergeht, werden alle Benutzer mit der Rolle Genehmigender per SMS auf ihr Mobiltelefon benachrichtigt. Für dieses Projekt muss TYPO3 ein externes System verwenden, um die Benachrichtigung zu versenden. Es dauert einige Sekunden, bis dieses System jede Nachricht verarbeitet und eine Antwort an TYPO3 sendet. Manchmal ist das externe System überlastet und lehnt neue Nachrichten ab. Mit einer Message Queue können Entwickler eine robuste Lösung für diese Probleme entwickeln. TYPO3 kann die Benachrichtigung in eine asynchrone Warteschlange stellen, ohne auf eine Antwort zu warten. Der Handler verarbeitet die in der Warteschlange gespeicherten geplanten Jobs, sendet die Benachrichtigungen an das externe System und kann sogar fehlgeschlagene Zustellungen erneut versuchen.
Ein weiterer Anwendungsfall ist das Auslösen von Prozessen beim Hochladen von Dateien. Stellen Sie sich ein Projekt vor, in dem strenge Vorschriften verlangen, dass beim Hochladen einer PDF-Datei über das Modul Datei ➜ Dateiliste eine Kopie des Dokuments in einem entfernten Langzeitspeicher archiviert wird. Ein anderes System extrahiert dann mit Hilfe von KI den Inhalt der PDF-Datei und erstellt eine Zusammenfassung des Inhalts. Da all diese Prozesse zum Zeitpunkt des Uploads angestoßen werden, kann die Anfrage des Backend-Benutzers sehr lange dauern und zu PHP-Timeouts führen. Die Message Queue von TYPO3 könnte diese im Hintergrund verarbeiten und sogar einen Alarm auslösen, wenn zu viele Versuche fehlschlagen, eine Datei im entfernten Speicher zu archivieren.
Es gibt eine ganze Reihe weiterer Anwendungsfälle, in denen synchrone oder asynchrone Message Queues große Möglichkeiten bieten. Lesen Sie das Changelog, um zu erfahren, wie Sie die Message Queue nutzen können.
Übrigens haben die TYPO3 Core-Entwickler die "stage change notifications" des Workspaces-Moduls als Nachricht und einen entsprechenden Handler nachgebildet.
Internationalisierung
Die sofort einsatzbereiten mehrsprachigen Funktionen von TYPO3 machen es Integratoren und Entwicklern leicht, komplexe Anforderungen an globale Inhalte zu erfüllen. TYPO3 Version 12.2 bietet zwei Verbesserungen für die Internationalisierung und Lokalisierung von Inhalten.
CountryProvider API
Für die Internationalisierung und die Unterstützung mehrerer Sprachen müssen Entwickler oft programmatisch Länderlisten erstellen und die Flaggen und Sprachen festlegen. Eine neue API in TYPO3 Version 12.2 stellt eine Länderliste basierend auf dem ISO 3166-1 Standard zur Verfügung. Sie können die CountryProvider-API verwenden, um lokalisierte Ländernamen und zugehörige Daten wie standardisierte ISO-Codes, die Unicode-Darstellung der Flaggen und mehr abzurufen.
Darüber hinaus können Sie mit dem neuen FormCountrySelect-Viewhelper für Fluid Dropdown-Elemente für Formulare darstellen.
Die von der CountryProvider-API bereitgestellten Daten basieren auf dem ISO-Code Repository des Debian-Projekts. Wir sind daher zuversichtlich, dass die Länderliste in TYPO3 aktuell bleibt.
Mehrstufiger Sprach-Fallback
Eine TYPO3-Website kann mehrere Frontend-Sprachen anbieten. Wenn mehrere Sprachen aktiviert sind, können Integratoren eine Fallback-Kette konfigurieren (auch bekannt als "Mixed Mode Overlays"). Das bedeutet, dass das System automatisch auf Inhalte in einer anderen Sprache zurückgreift, wenn eine Übersetzung noch nicht verfügbar ist.
Während diese Funktion bisher nur auf Seitenebene verfügbar war, unterstützt TYPO3 den Fallback-Mechanismus nun auch für beliebige Inhalte.
Verbesserungen im Bereich Sicherheit
Viele Organisationen und Institutionen sind gesetzlich verpflichtet, bestimmte IT-Standards und Sicherheits-/Datenschutzbestimmungen einzuhalten - und das aus gutem Grund. Als Enterprise-Software unterstützt TYPO3 Website-Betreiber dabei, diese Anforderungen zu erfüllen.
So haben wir beispielsweise in TYPO3 Version 12.0 konfigurierbare Passwortrichtlinien eingeführt, um modernen Compliance-Anforderungen gerecht zu werden. Seit TYPO3 Version 12.2 wird die globale Standard-Policy bei der Erstellung des ersten Admin-Benutzers während der Systeminstallation berücksichtigt. Die Policy erzwingt ein starkes Passwort in Bezug auf Mindestlänge, Groß- und Kleinschreibung, Zahlen etc.
Wir planen weitere Änderungen in den kommenden Versionen vor dem LTS-Release im April dieses Jahres, um die Sicherheit in dieser Hinsicht zu erhöhen.
Andere Änderungen
Wir haben einige veraltete Pfad- und Dateinamen in früheren TYPO3 v12 Sprint Releases gestrafft. Diese sind zum Beispiel
"LocalConfiguration.php" heißt jetzt "settings.php"
"AdditionalConfiguration.php" heißt jetzt "additional.php".
In TYPO3 Version 12.2 haben wir die Datei "ENABLE_INSTALL_TOOL" an einen neuen Ort im Dateisystem verschoben. Lesen Sie mehr über diese Änderung im Changelog. Sie müssen sich keine Sorgen machen, wenn Ihre Systeme oder Deployment-Prozesse auf den alten Speicherort angewiesen sind. TYPO3 prüft weiterhin den zuvor verwendeten Pfad "typo3conf/ENABLE_INSTALL_TOOL" als Fallback-Option, um die Abwärtskompatibilität zu gewährleisten.
Site-Konfigurationen werden in YAML-Dateien gespeichert und befinden sich in einem Ordner namens "sites/" im Dateisystem. Viele Einstellungen der Site-Konfigurationen sind nicht editierbar und nicht einmal im TYPO3-Backend sichtbar.
Damit Site-Administratoren die aktuellen Einstellungen einsehen können, ohne direkt auf das Dateisystem zugreifen zu müssen, haben wir das Dropdown-Menü im Backend-Modul System ➜ Konfiguration (System-Erweiterung "lowlevel") um zwei Einträge erweitert:
"Sites: TCA Konfiguration".
"Sites: YAML-Konfiguration".
Systemvoraussetzungen, Support und Wartung
Die Systemvoraussetzungen für TYPO3 Version 12.2 bleiben unverändert wie im Artikel "Get Ready for TYPO3 v12" beschrieben. Dazu gehört z.B. die PHP-Version 8.1. Auch unser Support- und Wartungsangebot bleibt unverändert. Lesen Sie mehr über die Voraussetzungen und Abhängigkeiten auf get.typo3.org.
Herunterladen und Installieren
Alle Details zum Release und wie Sie TYPO3 herunterladen und installieren können, finden Sie auf get.typo3.org. Detaillierte Installationsanweisungen sind in der Installationsanleitung dokumentiert. Wir empfehlen die Verwendung des Composers, um Ihre TYPO3-Umgebung einzurichten.
Feature Freeze kommt!
Der nächste Meilenstein auf unserer Roadmap ist TYPO3 Version 12.3, geplant für den 28. März 2023. Mit diesem Release wird der Feature Freeze für den v12-Zyklus erreicht. Von diesem Zeitpunkt an bis zum letzten LTS-Release wird sich das Core Team auf das Testen, Polieren und Verfeinern konzentrieren. Wenn Sie Ihre Code-Beiträge in TYPO3 v12 LTS sehen möchten, ist jetzt die beste Zeit, sie einzureichen (siehe TYPO3 Contribution Guide).
Lesen Sie mehr Informationen zur TYPO3 Agentur INGENIUMDESIGN hier nach.