TYPO3 10

TYPO3 10 LTS wird voraussichtlich Anfang April 2020 erscheinen. Auf dieser Seite finden Sie Informationen zu den Neuerungen der einzelnen Sprint Releases.

Auf dieser Seite informieren wir Sie über die Entwicklung der kommenden TYPO3-Version 10 LTS.

Bitte beachten: bei den bisher erschienenen Versionen handelt es sich um sogenannte "Sprint Releases". Diese Versionen sind nur Zwischenschritte auf dem Weg zur finalen LTS-Version und sind vor allem vor Extension-Entwickler interessant, die ihre Extensions jetzt schon an die neue Version anpassen möchten, oder für Neugierige, die einfach mal in die neuen Version reinschnuppern wollen. Für den produktiven Einsatz auf einer "normalen" Website können wir die Sprint Releases nicht unbedingt empfehlen. Hier sollte man schon sehr genau wissen, was man tut.

TYPO3 Version 10 Roadmap

Version Schwerpunkt der Entwicklung Erscheinungsdatum
10.0 Den Weg ebnen für neue Konzepte und APIs, notwendige Änderungen. 23.07.2019
10.1 Verbesserungen im Routing, Site Handling V2 01.10.2019
10.2 Verbesserung in der Rendering Engine und Fluid 03.12.2019
10.3 Feature Freeze (es werden keine neuen Funktionen mehr hinzugefügt, Verbesserung der Stabilität, Fehlerbehebungen etc.) 04.02.2020
10.4 Freigabe der LTS Version 07.04.2020

Version 10.0 (Sprint Release, erschienen am 23.07.2019)

Mit Version 10.0 wurde am 23.07.2019 der erste Sprint Release auf dem Weg zur Version 10 LTS veröffentlicht.

Da der Schwerpunkt der Version 10.0 auf "Aufräumarbeiten" liegt, wurden in diesem Release eine große Anzahl von Änderungen vorgenommen. Das ermöglicht es, bereits in einem frühen Stadium der Entwicklung neue Bibliotheken, moderne Konzepte und optimierte APIs einzuführen.

Was ist für Version 10 geplant?

Für TYPO3 v10 LTS wurden ehrgeizige und wichtige Ziele gesetzt. Die folgenden Verbesserungen stehen ganz oben auf der Liste und werden sich in allen kommenden Sprint-Versionen ständig weiterentwickeln:

  • TYPO3-Integratoren die einfache Konfiguration des Systems ermöglichen
  • TYPO3-Redakteure, Administratoren und Extension-Entwickler von Best Practices profitieren lassen
  • Verwendung von stabilen und etablierte Standards und PHP-Paketen, um stabile APIs im gesamten TYPO3-Kern zu erreichen
  • Die tägliche Arbeit mit TYPO3 noch angenehmer machen

Die wichtigsten Änderungen in Version 10.0

Da die Version 10.0 die erste Version der v10-Serie ist, liegt ihr Hauptzweck darin, Funktionen loszuwerden, die als veraltet gelten oder aus Legacy-Gründen beibehalten wurden.

In TYPO3 9 wurden neue Konzepte und Methoden eingeführt, die sich als erfolgreich erwiesen haben. Jetzt geht es darum, die Legacy-Schicht zu entfernen und die neuen APIs zu stabilisieren. Darüber hinaus wurden in der Version 10.0 neue Konzepte eingeführt, die bei den nachfolgenden Sprint-Releases der TYPO3 10-Serie noch weiter verbessert werden sollen.

Site handling

In TYPO3 9 LTS wurde das native Site-Handling eingeführt - die Grundlage für URL-Handling sowie Multi-Site- und Multi-Language-Funktionalitäten.

TYPO3 9 erlaubt es Integratoren weiterhin, sys_domain records (die alte Methode eines Multi-Domain-Setups) zu verwenden. Diese Kompatibilität wurde entfernt und die Einrichtung einer Site Configuration ist nun in v10.0 obligatorisch. TYPO3-Integratoren profitieren von den zahlreichen Vorteilen eines einheitlichen und standardisierten Website-Handlings.

PHP-Klassen-/Eigenschaftsanalyse

Extbase (das in TYPO3 verwendete MVC-Framework) ermöglicht es Core- und Extension-Entwicklern, Funktionen für TYPO3 sauber und konsistent zu schreiben ("convention over configuration"). Die Analyse von benutzerdefinierten PHP-Klassen und deren Eigenschaften ist eine Schlüsselfunktion von Extbase. Diese Aufgabe wird nun von der PropertyInfo-Komponente von Symfony übernommen. Durch die Verwendung eines PHP-Pakets, das Industriestandards entspricht, bekannt ist und von einer großen Community gepflegt wird, wird sichergestellt, dass diese Komponente von Extbase auch in den kommenden Jahren auf dem neuesten Stand der Technik bleibt. 

Neue Dependency Injection

Das oben genannte Ziel, robuste und etablierte Standards und PHP-Pakete im gesamten TYPO3-Kern zu verwenden, zeigt sich auch in einem weiteren Bereich von höchster Bedeutung: "Dependency Injection" (DI). Diese Technik kommt zum Einsatz, wenn ein Objekt die Abhängigkeiten eines anderen Objekts liefert. PHP-Objekte, die keinen Zustand enthalten, werden als Services bezeichnet und sind logisch in Service-Container gekapselt.

Durch die Anwendung der Service Container-Architektur von Symfony wird das Dependency Managementt und die Dependency Injection für PHP-Klassen auf eine neue Ebene gebracht. Dieser Ansatz zielt darauf ab, den Extbase Dependency Injection Container und den Object Manager zu ersetzen, was bedeutet, dass in Zukunft auf GeneralUtility::makeInstance() verzichten werden kann, um Singletons und statische Methoden wie getInstance() zu erhalten.

Entwicklern wird empfohlen, die Symfony-Dokumentation zu lesen und die PSR-11-Initiative und ihre Teilaufgaben im Auge zu behalten.

Event dispatcher

Wie bereits erwähnt: TYPO3 Version 10.0 ist das perfekte Release, um neue, moderne Technologien einzuführen.

Hooks und das Signal/Slot Konzept ist eine der Stärken von TYPO3. Letzteres ermöglicht es, die Kernfunktionalität um ein Signal zu erweitern und andere Komponenten über ein bestimmtes Ereignis zu informieren. TYPO3 Extension-Entwickler können diese Technologie nutzen und auf diesem Core-Feature aufbauen.

Es wurde Event Dispatcher zum TYPO3-Kern hinzugefügt (klar spezifiziert in PSR-14), der die gleiche API wie das Zend Framework oder die EventDispatcher-Komponente von Symfony hat. "Events" werden im Laufe der nächsten TYPO3-Sprint Releases hinzugefügt und diese Technologie soll mittelfristig Hooks und Signal/Slots ersetzen.

Extensionentwickler brauchen sich keine Sorgen zu machen: Hooks und registrierte Slots bleiben so, wie sie jetzt sind und werden vorerst wie bisher funktionieren.

Neue "mailer" API

TYPO3 hat bisher die SwiftMailer-Bibliothek zum Erzeugen und Versenden von E-Mails genutzt. Die aktive Entwicklung stagniert jedoch und es wurde entschieden, eine weitere Symfony-Lösung mit einer modernen API einzusetzen: das Paket "Mime" für die Erstellung von E-Mails und das Paket "Mailer" für die Verarbeitung und den Versand.

Beide Komponenten sind auf dem neuesten Stand der Technik und ermöglichen es, HTML-basierte E-Mails an verschiedenen Stellen im Kern zu generieren, an denen bisher nur einfache Text-E-Mails implementiert sind.

System-Extensions ausgelagert

Die bisher enthaltenen System-Erweiterungen "RSA Authentication" (Extension-Key rsaauth), "Task Center" (Extension-Key taskcenter), "Actions" (Extension-Key sys_action) und "Frontend Editing" (Extension-Key fe_edit) wurden in das öffentliche Extension-Repository von TYPO3 verschoben.

Diese Extensions werden auf dem neuesten Stand gehalten, sind aber nicht mehr Teil der Support- und Wartungsrichtlinien von TYPO3, die für den TYPO3-Kern gelten.

Version 10.1 (Sprint Release, erschienen am 01.10.2019)

Am 01.10.2019 wurde TYPO3 10.1 als weiterer Sprint Release veröffentlicht.

Das neue Release erhielt mehr als 250 Git Commits (überprüfte, getestete und freigegebene Quellcode-Änderungen) seit der Vorgängerversion 10.0, die vor 10 Wochen veröffentlicht wurde. Obwohl Backend-Anwender nicht viele offensichtliche Änderungen oder wesentliche neue Funktionen als solche sehen werden, erhielt TYPO3 Version 10.1 eine Reihe von Verbesserungen unter der Haube.

Standard Site Configuration

Um eine neue TYPO3-Website von Grund auf neu zu erstellen, sind nur wenige Schritte erforderlich. In TYPO3 Version 10.1 wurde der Prozess ein wenig vereinfacht: Wenn eine neue Seite auf der Root-Ebene erstellt wird, wird damit automatisch eine Standard-Site-Konfiguration generiert. 

Angabe der E-Mailadresse während der Installation

Während des Installationsvorgangs kann für den Administrator-Zugang eine E-Mailadresse angegeben werden.

Ebenso findet man diese Möglichkeit, wenn man über das Installtool einen weiteren Admin-Account anlegt.

Konflikte in Weiterleitungen (Redirect) erkennen

Das Redirects Backend-Modul wurde mit TYPO3 9 eingeführt und ermöglicht es Administratoren, Redirects, also Weiterleitungen, hinzuzufügen und zu konfigurieren.

Der Quellpfad kann ein beliebiger Name sein oder er kann als regulärer Ausdruck dargestellt werden. Dies bietet eine großartige Funktionalität, aber was ist, wenn ein Redirect den gleichen Namen wie eine Seiten-URL hat? Solche Konfigurationsfehler können passieren und TYPO3 bietet eine einfache Lösung, um widersprüchliche Umleitungen zu erkennen: einen CLI-Befehl, der eine Liste der Konflikte (falls vorhanden) anzeigt. Dieser Befehl kann auch als Scheduler-Task konfiguriert werden, und die Ergebnisse werden im Backend unter "SYSTEM ➜ Reports" angezeigt.

URL-Pfad (Slug) Änderungen und Weiterleitungen

Die Unterstützung von Backend-Anwendern bei ihrer täglichen Arbeit und die größtmögliche Robustheit und Benutzerfreundlichkeit von TYPO3 standen schon immer ganz oben auf der Liste der TYPO3-Entwickler.

Manchmal ist es notwendig, den URL-Pfad einer Seite (den sogenannten "Slug") zu ändern, und Backend-Benutzer können das in TYPO3 einfach tun, wenn sie über die entsprechenden Zugriffsrechte verfügen.

Eine solche Aktion führt jedoch in der Regel zu einem "Seite nicht gefunden"-Fehler, wenn ein Besucher der Website versucht, mit dem alten Slug auf eine Seite zuzugreifen.

Mit der TYPO3 Version 10.1 gibt es nun eine intelligente Lösung: die relevanten Slugs für alle Unterseiten werde automatisch aktualisiert und Umleitungen von der alten auf die neue URL erstellt. Backend-Benutzer werden über diese Aktionen informiert und können die Änderungen mit einem Klick auf eine Schaltfläche einfach zurücksetzen.

Cache presets

Als Enterprise Content Management System ist TYPO3 bekannt dafür, sehr große Websites und Anwendungen problemlos zu betreiben. Aber auch kleine bis mittlere Webprojekte, die auf Shared Hosting-Umgebungen laufen, nutzen TYPO3 aus verschiedenen Gründen. Zwei davon sind die Leistung und die Möglichkeit, fast jeden Aspekt einer Installation zu verfeinern.

Das Caching-Framework von TYPO3 verwendet standardmäßig die Datenbank als Speicherplatz für das Caching. Verschiedene Tests zeigen jedoch, dass dies unter bestimmten Umständen nicht die perfekte und performanteste Konfiguration ist. Je nach Umgebung und Hosting-Setup ist ein im Dateisystem gespeicherter Cache schneller. Integratoren und Administratoren können nun den Speichertyp für Caches konfigurieren.

Standard-Aktion für Datei-Uploads

Die Standardaktion, wenn Backend-Benutzer Dateien hochladen, ist jetzt konfigurierbar.

In früheren TYPO3-Versionen ist der Standard "Diese Datei überspringen", wenn Backend-Benutzer versuchen, eine bereits vorhandene Datei hochzuladen. Dies ist natürlich die sicherste Option, aber mit TYPO3 v10.1 können Sie sie neu konfigurieren, was die Funktionalität des Datei-Uploads flexibler und benutzerfreundlicher macht. Die verfügbaren Optionen sind "Ersetzen", "Umbenennen" und "Abbrechen".

Eigene Dateiprozessoren

Entwickler können nun Ihre eigenen Dateiprozessoren registrieren. So können verschiedene Operation auf Dateien angewendet werden, die von einem Backend-Benutzer hochgeladen werden. zum Beispiel: Hinzufügen von Wasserzeichen zu Bildern, Komprimieren hochgeladener Dateien in ein ZIP-Archiv, Speichern einer Kopie eines zugeschnittenen Bildes, Übertragen hochgeladener Dateien auf einen zweiten Speicherort, etc.

Benachrichtigungen im Backend

"Benachrichtigungen" sind ein wesentliches Element der Benutzeroberfläche. Dies sind kleine Boxen, die manchmal in der rechten oberen Ecke des TYPO3-Backends erscheinen und den Benutzer über bestimmte Ereignisse informieren. Dies kann eine Benachrichtigung über einen erfolgreich abgeschlossenen Prozess, eine Warnung, dass unerwartet etwas passiert ist, oder ein Hinweis auf einen schwerwiegender Fehler sein.

Diesen Benachrichtigungen können jetzt Schaltflächen hinzugefügt werden, über die Aktionen zur Ausführung von JavaScript-Funktionen ausgelöst werden können.

Cache dependency injection

Caching war schon immer ein wichtiger Faktor in TYPO3 und wird deshalb auch immer weiter verbessert. Der Service Container von Symfony wurde in TYPO3 Version 10.0 eingeführt und ermöglicht es nun, Cache-Objekte direkt und nicht mehr über den CacheManager einzubinden.

Mit anderen Worten: Der TYPO3-Kern stellt nun alle Core-Caches als Dependency Injection Services zur Verfügung und Extension-Entwickler können dieses Feature jetzt nutzen. Dazu fügt man den Cache-Dienst in die Datei "Configuration/Services.yaml" ein und die Dependency Injection kümmert sich darum, den Cache an Ihren Klassenkonstruktor zu übergeben. Seit der TYPO3-Version 10.1 müssen Entwickler den "CacheManager" nicht mehr verwenden.

In der Dokumentation finden sich dazu einige Codebeispiele.

Aufräumarbeiten

Wie bei jedem anderen TYPO3-Release wurden auch in der TYPO3-Version 10.1 einige Funktionen vereinfacht und einige alte Codefragmente bereinigt. Dazu gehört unter anderem die bekannte "jumpToUrl()". JavaScript-Funktion (die als "veraltet" markiert wurde) und einige JavaScript-Variablen, die in TYPO3 v11 entfernt werden.

Es wurden auch einige interne Änderungen an der Klasse "RecordHistory" vorgenommen und zwei neue Ereignisse hinzugefügt, die beim Zurücksetzen von Datensätzen ausgelöst werden. Dies ermöglicht es Entwicklern, auf Daten zuzugreifen und sie zu manipulieren, bevor und nachdem ein Datensatz-Historieneintrag rückgängig gemacht wurde.

Verwenden Sie noch das alte XML-Format für Ihre Sprachdateien? Um es kurz und bündig auszudrücken - migrieren Sie jetzt alle Ihre XML-Dateien auf den XLIFF-Standard! XLIFF wurde mit TYPO3 Version 4.6 (vor fast 8 Jahren!) eingeführt und ist seither das empfohlene Format für Sprachdateien. Die Verwendung von XML für Sprachdateien wurde in TYPO3 Version 10.1 als veraltet eingestuft und wird in naher Zukunft nicht mehr unterstützt. Wenn Sie ein Tool zur Konvertierung von XML-Sprachdateien benötigen, könnte die Erweiterung EXT:ew_llxml2xliff von Sebastian Fischer hilfreich sein.

Sicherheitsverbesserungen

Jede Verbesserung, die die Sicherheit einer Website stärkt und die Privatsphäre ihrer Nutzer schützt, ist wichtig, egal ob es sich um eine große oder kleine Änderung handelt. Ab sofort haben alle von TypoLink verarbeiteten externen Links standardmäßig das Tag-Attribut rel="noopener noreferrer".

Während der erste Wert "noopener" die Browser anweist, den Link zu öffnen und den Zugriff auf das Dokument zu blockieren, das den Link enthält, weist der zweite Wert "noreferrer" die Browser an, keine Daten über die Herkunft im HTTP-Header "Referer:" zu senden.

Weitere Änderungen und Neuerungen

Das hier war nur ein relativ kleiner Teil der Änderungen und Neuerungen in Version 10.1.

Eine ausführliche Auflistung finden Sie in den "What's new"-Slides (PDF) oder im ChangeLog.

Über Änderungen informiert bleiben

Es gibt mehrere Wege, über Änderungen während der Entwicklung von TYPO3 10 LTS auf dem laufenden zu bleiben. 

Eine Möglichkeit ist der Twitter-Account t3git_master, der automatisiert alle Änderungen am TYPO3-Code twittert, inklusive Link zu der entsprechenden Commit-Message auf Github, in der man dann Details zu der Änderung nachlesen kann.

Einfacher ist aber sicher die integrierte Upgrade-Dokumentation im Installtool von TYPO3. Hier kann man sich alle Änderungen inklusive Beschreibungen anzeigen lassen.