www.lowcodeapp.de - Beschleunigung der digitalen Transformation mit Open Source Low-Code Development.

Alles zu TYPO3 12

,
Laptop mit TYPO3 Logo

TYPO3 wird besser und besser. Mit dem Release der Version 12.0 im September 2022 wurde gleichzeitig die lang erwartete Roadmap für den Weg zur neuesten Long Term Support Version des beliebten Content Management Systems bekannt gegeben. So wurde die finale TYPO3 Version 12.4. LTS am 25.04.2023 veröffentlicht. Im folgenden stellen wir die wichtigsten Features der neuen vollständigen TYPO3 12 LTS Version vor.

Die grundlegenden Ziele für TYPO3 v12 LTS sind:

  • Verbesserte Leistung
  • Verbesserung des TYPO3 Backends in Hinblick auf Design und Usability
  • Effizienteres Arbeiten für Entwickler:innen
  • Bessere Kommunikation mit Systemen von Drittanbietern

UX Anpassungen im Backend-Bereich

Im Backend-Bereich wurde mit dem v12.0 Release der Weg für weitere Überarbeitungen in den kommenden Sprint-Releases geebnet. So modernisierte man das Kontextmenü, die Pop-Down-Menüs sowie die FlashMessages, welche Nutzer:innen benachrichtigen, ob Aktionen erfolgreich durchgeführt wurden oder nicht. Das neue Seitenmodul überzeugt mit strukturiertem Design und durch neue Layout-Elemente lassen sich Inhaltselemente leichter verschieben. 

Abb.: Kontextmenü im Seitenbaum

Änderungen für Integrator:innen

Für TYPO3 Integrator:innen ändert sich einiges mit TYPO3 v12. Im Admin-Panel wird nun eine Checkbox angezeigt, mit der Start- und Endzeitbeschränkungen von Datensätzen deaktiviert werden können. Dadurch ist es nun möglich, sich eine Seite unabhängig von Start- oder Endzeitstempel mit Inhaltsdatensätzen anzeigen zu lassen. 

Abb.: Neue Filter bei den Systemprotokollen

Neue Funktion der User TSconfig

In der User TSconfig wurde in v12 eine weitere neue Funktion hinzugefügt, nachdem in der Vorgängerversion 11 bereits das Backend-Modul “Filelist” sowie die Möglichkeit zur Stapelverarbeitung von Dateien angepasst wurden. Mit dieser neuen Option lässt sich einstellen, welche primären Aktionen in der Listenansicht der “Control”-Spalte angezeigt werden sollen. Dank der Funktion "options.file_list.primaryActions" kann jetzt die Anzahl der angezeigten Aktionen pro Benutzer:in im Vergleich zu den Standardeinstellungen reduziert werden. Es ist sogar möglich, alle Symbole zu entfernen oder neue, wie beispielsweise “in die Zwischenablage kopieren” hinzuzufügen.  

Änderungen für Entwickler:innen

Auch auf der Entwicklerseite bietet TYPO3 v12 einige Neuerungen.

Die bislang verwendete Datenbank-Abstraktionsschicht Doctrine DBAL wurde in TYPO3 v12.0 auf Version 3 aktualisiert. 

Darüber hinaus wurden sieben neue TCA-Typen hinzugefügt, welche in TYPO3 Version 12 LTS verfügbar und in der TCA-Referenz dokumentiert sind: E-Mail, Passwort, Link, Nummer, Datetime, Farbe und Datei.

Des Weiteren konnte durch die Ablösung von RequireJS durch Javascript ES6 ein schnelleres Laden von AMD-Modulen erreicht und damit die allgemeine Leistung verbessert werden. 

Eingehende Webhooks ("Reactions")

Moderne Entwicklungsprozesse beinhalten CI/CD Pipelines, welche Anwendungen automatisch testen und bereitstellen. Dies erfordert allerdings sichere und standardisierte Systemschnittstellen. Dafür haben sich Webhooks als gängiges Konzept bewährt.

Dank der neuen Funktion “Reactions” ist es jetzt möglich, TYPO3 so zu konfigurieren, dass es auf eingehende Webhook-Aufrufe reagiert. Bereits in der Vorgänger-Version TYPO3 v9 wurde PSR-15-Middlewares hinzugefügt. Allerdings sind die Reactions von TYPO3 deutlich einfacher und flexibler. Zusätzlich verfügt TYPO3 v12 über ein Backend-Modul, mit dem TYPO3 Integrator:innen und Website-Administrator:innen die Reactions konfigurieren können. Dies vereinfacht die Integration von TYPO3 in eine Low-Code Umgebung oder in eine Deployment- oder Daten-Pipeline.

Da TYPO3 eine API bereitstellt, haben Entwickler:innen so die Möglichkeit, unzählige individuelle Lösungen zu erstellen.

Abb.: Erstellung neuer Reactions

Ausgehende Webhooks

Neben den eingehenden Webhooks bietet TYPO3 V12 auch die Funktion "Outgoing Webhooks", die es ermöglicht, Ereignisbenachrichtigungen über ausgehende HTTP-Aufrufe an andere Systeme zu senden und im Modul Webhooks zu konfigurieren.

Das neue Backend-Modul Webhooks erlaubt die Konfiguration von Anfragen, indem man ein Ereignis auswählt und einen Namen und eine Ziel-URL vergibt, an die die TYPO3 Anfrage gesendet werden soll. Weiterhin ist es möglich, zusätzliche Daten in der Nutzlast anzugeben und HTTP-Header hinzuzufügen, um die HTTP-Anfrage zu verfeinern. 

Abb.: Konfiguration eines Webhooks

Abb.: erweiterte HTTP angeforderte Einstellungen

Abb.: Liste der verfügbaren webhooks

Neue Sicherheitsfunktionen

Der Button, mit dem sich im TYPO3 Backend beim Anlegen einer neuen Reaction Passwörter generieren lassen, steht ab jetzt auch TYPO3 Entwickler:innen für eigene Extensions zur Verfügung. Dafür muss einfach das Feld-Control "passwordGenerator" auf ein Passwortfeld in der TCA-Datei (Table Configuration Array) angewendet werden.

Weiterhin können Regeln definiert werden, wie beispielsweise die Länge der zu generierenden Zeichenkette oder ob das zufällige Passwort Groß- und Kleinbuchstaben oder Sonderzeichen enthalten soll. 

Verbesserungen im TYPO3 Backend

Verbesserte Backend-Suche

Um sich in der vielschichtigen TYPO3 Backend-Umgebung noch leichter zurechtfinden zu können, wurde für Version 12 die Suchfunktion überarbeitet.  Durch einen Klick auf die Lupe in der Kopfzeile oder das Tastenkürzel Strg/Cmd+K können Backend-Benutzer:innen nun die Suchfunktion öffnen. 

Weiterhin ist es jetzt möglich, die Suche optional auf Seitendatensätze zu beschränken, indem die Option im Kontextmenü ausgewählt wird. Wird der Suche “Page:” vorangestellt, kann diese auf einen Seitentitel beschränkt werden, der das gesuchte Stichwort enthält.

Neue Kachelansicht in der Dateiliste

Die klassische Listenansicht im TYPO3 -Backend bietet einen strukturierten Überblick über Dateien und Ordner. Hier haben Backend-Benutzer:innen einfachen Zugriff auf verschiedene Aktionen. Weiterhin werden Details wie Dateitypen, Dateigröße und Inhaltselemente (Referenzen) angegeben. 

Über das neue Menü, das seit dem letzten Release-Sprint am oberen Rand der Seite zu finden ist, können Backend-Benutzer:innen seit dem letzten Release-Sprint ihre bevorzugte Ansicht auswählen. Neben den Optionen Kachel- oder Listenansicht ist es ab jetzt ebenfalls möglich, die Miniaturansicht und die Zwischenablage zu aktivieren oder zu deaktivieren. 

Abb.: Beispiel Kachelansicht

TYPO3 stellt nach der Konfiguration bei erneuter Anmeldung die zuletzt eingestellte Ansicht wieder her. 

Filelist Backend-Modul

Das Backend-Modul "File" wurde in den früheren Versionen TYPO3 v11 und v12 mehrmals erweitert. In der neuesten Version wurde das Backend-Modul weiter verbessert, um Redakteuren, die mit vielen Dateien und Ordnern arbeiten, noch mehr Vorteile zu bieten. 

Drag and Drop von Objekten in die Baumstruktur

Dank der neuen Drag-and-Drop -Funktion wird das Verschieben und Kopieren von Elementen jetzt noch einfacher und intuitiver. In früheren TYPO3 Versionen wurde dazu üblicherweise die Zwischenablage verwendet. In TYPO3 Version 12 ist es jetzt möglich, auf ein Element in der Dateiliste zu klicken und es in den Ordnerbaum zu ziehen und dann im Zielordner abzulegen. 

Abb.: Drag einer Datei in den File Tree

Abb.: Bestätigungs-Popup wenn eine Datei kopiert oder bewegt wurde

Message Bus und Warteschlange

Um sicherzustellen, dass alle Komponenten einheitlich zusammenarbeiten und nahtlos kommunizieren, bietet TYPO3 Version 12 eine Basisimplementierung eines Message Bus auf der Grundlage von Symfony Messenger. 

Das Standardverhalten von TYPO3 ist die synchrone Verarbeitung von Nachrichten. Durch eine einfache Konfigurationsänderung kann das System jedoch auf den asynchronen Transportmodus umgestellt werden. In diesem Modus können Nachrichten, die in der Warteschlange gespeichert sind, zu einem späteren Zeitpunkt verarbeitet werden. 

Mehrstufiges Language Fallback

Durch die Verwendung von TYPO3 ist es möglich, einzelne Seiten im Frontend in jeweils mehreren Sprachen anzubieten. Wenn diese Option aktiviert ist, können Integrator:innen eine sogenannte Fallback-Kette konfigurieren, die auch als "Overlays im gemischten Modus" bekannt ist. Dadurch kann das System automatisch auf Inhalte in einer anderen Sprache zurückgreifen, wenn eine Übersetzung noch nicht vorhanden ist.

Bisher war diese Option nur auf Seitenbasis verfügbar, nun unterstützt TYPO3 diesen Fallback-Mechanismus auch für beliebige einzelne Inhaltselemente. 

Verbesserungen bei der Sicherheit

Organisationen und Institutionen sind häufig gesetzlich dazu verpflichtet, gewisse IT-Standards und Sicherheits-/Datenschutzbestimmungen einzuhalten, um die Sicherheit von Daten und Systemen zu gewährleisten. Daher ist es wichtig, dass Betreiber von Websites sicherstellen, dass ihre Systeme und ihre Software diesen Anforderungen entsprechen. In TYPO3 Version 12.0 wurden konfigurierbare Passwortrichtlinien eingeführt, um den modernen Compliance-Anforderungen gerecht zu werden. In TYPO3 Version 12 wird nun die globale Standard-Policy berücksichtigt, wenn der erste Admin-Benutzer während der Systeminstallation angelegt wird. Diese Richtlinie erzwingt ein starkes Passwort in Bezug auf Mindestlänge, Groß-und Kleinschreibung, Ziffern usw.

Content Security Policy (CSP)

TYPO3 Version 12 bietet eine neue Funktion zur einfachen Konfiguration der Content Security Policies (CSP) für das Backend und das Frontend. Laut MDN Web Docs ist die 

CSP eine zusätzliche Sicherheitsebene, die hilft, bestimmte Arten von Angriffen (darunter Cross-Site Scripting (XSS) und Data Injection Attacken)zu erkennen und zu entschärfen. TYPO3-Entwickler:innen können nun Richtlinien erstellen, die den Browsern vorschreiben, wie sie mit bestimmten Ressourcen umgehen sollen. 

Ein neues Backend-Modul namens Admin Tools ➜ Content Security Policy wurde ebenfalls mit TYPO3 v12 LTS implementiert.

Extbase-Änderungen

Mit der Weiterentwicklung von TYPO3 wird auch das Programmier-Framework "Extbase" fortlaufend weiterentwickelt:

Magic Methods

Magic Methods erlauben es Entwickler:innen, über Funktionsaufrufe Daten aus Repository-Klassen abzurufen. Diese Funktionen haben den Vorteil, dass ihre Methoden erst zur Laufzeit festgelegt werden. Wenn eine Methode nicht implementiert ist, wird die benötigte Funktionalität automatisch von Extbase bestimmt. Die Repository-Klasse leitet den Eigenschaftsnamen vom angegebenen Begriff “findBy” ab und ermöglicht so bequeme und zeitsparende Funktionen wie findByFirstname(), findByLastname(), findByLocation() und findByVersion().

Diese Magic Methods haben allerdings auch erhebliche Nachteile, da von den meisten Entwickler:innen integrierte Entwicklungsumgebungen die Namen der Magic Methods nicht auflösen können und Typdeklarationen nicht möglich sind, was zu Warnungen vor ungültigem Code führt. Auch statische Codeanalysen sind problematisch für Magic Methods.

In TYPO3 Version 12.3 wurden neue Methoden eingeführt, die dieselbe Funktionalität wie Magic Methods bieten, aber die oben genannten Probleme lösen:

findBy(array $criteria, ...)

findOneBy(array $Kriterien, ...)

count(array $criteria, ...)

TypoScript und Page TSconfig

Das TYPO3 Core Team hat TypoScript und Page TSconfig überarbeitet und einen neuen, schnelleren und robusteren TypoScript-Syntaxparser entwickelt. Der Nachteil ist jedoch, dass einige Syntaxänderungen bei einem Upgrade auf v12 Probleme verursachen können. Die meisten Websites sollten allerdings weiterhin funktionieren. In den früheren v12 Sprint-Releases wurden bereits Backend-UI-Änderungen vorgenommen, und alles, was mit TypoScript im Frontend zu tun hat, befindet sich nun im Modul TypoScript. Das Page-TSconfig-Modul hat eine neue Position und ein neues Erscheinungsbild, um Integrator:innen und Site-Administrator:innen bei der Verwaltung, Überprüfung und Fehlersuche der Backend-Oberfläche zu unterstützen.

Aktualisierte Systemanforderungen

  • PHP Version 8.1. als neue, stabilere PHP Version 
  • MySQL Version 8.0 oder höher
  • MariaDB Version 10.3 oder höher
  • PostgreSQL Version 10.0 oder höher
  • SQLite Version 3.8.3 oder höher
  • Der Microsoft SQL Server wird zukünftig nicht mehr unterstützt.

Weitere Features

  • Luxemburgisch wird nun im TYPO3 Backend unterstützt 
  • zwei neue PHP-Erweiterungen: Multibyte String sowie Internationalization 
  • Reflection unterstützt jetzt Union-Types - Extbase unterstützt jetzt Union-Type-Deklarationen, die es ermöglichen, verschiedene Datentypen in Properties, Argumenten und Rückgabetypen zu deklarieren. Mit TYPO3 v12 wurde diese Funktion auch für Entity-Eigenschaften implementiert.
  • Aufbewahrungsfrist für gelöschte Datensätze - In TYPO3 werden gelöschte Datensätze nicht sofort aus der Datenbank entfernt, sondern als gelöscht markiert. Mit der Systemerweiterung "TYPO3 CMS Lowlevel" können diese Datensätze jedoch endgültig gelöscht werden. In TYPO3 12 wurde die Funktion um die Option "--min-age" erweitert, um Einträge ab einem bestimmten Mindestalter zu löschen und gleichzeitig Datenaufbewahrungsrichtlinien einzuhalten.
  • Element-Browser im Filelist-Backend-Modul - Backend-Benutzer:innen können jetzt zwischen Kachel- und Listenansicht wechseln und die Suchfunktion berücksichtigt den ausgewählten Ordner und dessen Unterordner.
  • Einfacheres Erstellen von Ordnern im Backend
  • neue CountryProvider-API - lokalisierte Ländernamen und weitere zugehörige Daten können abgerufen werden
  • neue Konfigurationsoptionen für die Mail API - z.B Begrenzung der Anzahl der zu sendenden Nachrichten, Anzahl zwischen Stopp und Neustart des Transportes und Mindestanzahl der Sekunden zwischen zwei Nachrichten 
ZURÜCK