Das neue TYPO3 Release v13

Inhaltsverzeichnis

Dieser Artikel besteht aus mehreren Unterseiten:

Einführung
Neue Funktionen
Breaking Changes
Deprecations

Einleitung

Am 15. Oktober 2024 wurde die LTS Version 13.4 von TYPO3 veröffentlicht. Während schon seit mehreren Monaten die Versionen 13.0-13.3 zur Verfügung standen, ist für Kunden und Agenturen eigentlich erst die Veröffentlichung einer "LTS-Version" ("Long Time Support") gleichzusetzen mit der Verfügbarkeit von TYPO3 v13 im Produktivbetrieb.

Dieser zu 100% ohne KI geschriebene Artikel verfolgt zwei Ziele. Zum einen soll er Änderungen hervorheben, die primär aus Kundensicht (und somit aus Agentursicht) relevant sind: Wo gibt es neue Funktionen? Wo werden Dinge/Prozesse vereinfacht (und somit kostengünstiger? Welche Fehler wurden behoben? Und ganz wichtig: Wieviel Aufwand macht das neue Update?

Das zweite Ziel ist die detaillierte Auflistung von allen relevanten Änderungen für Entwicklerinnen und Entwickler.

Für Projekte im kommerziellen Umfeld gibt es oft ein Spannungsfeld zwischen "immer up-to-date bleiben, Trends mitverfolgen" und "kosteneffektiv arbeiten".

Neue Funktionen und Änderungen, die für Entwicklerinnen und Entwickler attraktiv sind, können bei Kunden (auch Redakteurinnen und Redakteuren) nur ein Schulterzucken hervorrufen, wenn sich "unter der Haube" etwas ändert, aber ansonsten Kosten eines Updates ohne direkt sichtbaren Auswirkungen anfallen. Das Thema DSGVO und die sicherheitsrelevante Notwendigkeit von aktuellen Software-Produkten hat dieses Spannungsfeld eher noch vergrößert.

Somit gilt es oft abzuwägen: Welche neuen Funktionen und Änderungen sind "Must-Haves" bei einem Update, und bei welchen Änderungen versucht man Geld einzusparen und arbeitet vorerst noch mit den "altbekannten" Methoden.

Neue Projekte werden ab der Verfügbarkeit einer neuen Hauptversion bevorzugt auch sofort mit modernen Techniken und der aktuellsten Version durchgeführt, um die 3-jährige kostenlose Support-Zeit der LTS-Version optimal auszunutzen.

Grundsätzlich gilt bei TYPO3: Innerhalb einer Hauptversion (ab der LTS-Version) ändert sich außer Bugfixes und kleineren, unkritischen Funktionen nichts Kritisches. Man kann also üblicherweise ein Projekt die ganzen 3 Jahre ohne Änderungen im Code, aber mit beständigen Software-Updates "passiv" warten.

Changelogs "richtig" lesen

Wenn ein neues TYPO3-Release ansteht, steht ein riesiges Arsenal an Changelog-Einträgen zur Verfügung, die akribisch jede einzelne Änderung ("Change") beschreiben.

Diese sind pro Version (13.0 - 13.4) untergliedert in "Breaking Changes / Important" (Änderungen mit Handlungsbedarf), "Features" (Neuigkeiten) und "Deprecations" (bald anstehende Inkompatibilitäten).

Im Fall von TYPO3 v13 sind es in Summe 331 einzelne Dokumente, die häufig mehrere Bildschirmseiten an Text enthalten und geballte Information besitzen.

Diese Changelogs von TYPO3 sind von großem Nutzen. Die Qualität der Änderungshistorie ist hervorragend und wird mit viel Mühe und Details von den TYPO3-Contributors gepflegt.

Häufig findet man in laufenden Projekten selten die Zeit, in die Zukunft zu blicken, und auch schon bei den frühen Sprint-Releases von TYPO3 "auf dem Laufenden" zu bleiben, wie man es sich wünschen würde. Und so sammelt sich zum LTS-Release eine fast unüberschaubare Menge an zu sichtenden Changelog-Einträgen an.

Bestenfalls hat man ein komplettes TYPO3-Projekt mit Unit-, Functional- und Acceptance-Tests ausgestattet, kann das Update durchführen, und erhält dann eine lange Liste an fehlgeschlagenen Tests, die man abarbeiten kann, um sein Projekt kompatibel für die neue Version zu machen. Die Realität sieht jedoch (leider!) häufig anders aus, dass Tests in Projekten unvollständig oder sogar gar nicht vorhanden sind.

Meist steht man daher vor der Entscheidung:
 

  • "Augen zu und durch": Das Update durchführen, das gesamte Projekt und alle eigenentwickelten Funktionalitäten durchprüfen, nach Fehlermeldungen und Fehlfunktionen Ausschau halten.
  • "Tools vertrauen": Wie im folgenden Abschnitt beschrieben gibt es mehrere Tools, die das Update begleiten können. Jedoch kann man sich nicht vollständig auf diese Automatisierung verlassen, sondern sollte mindestens alle Änderungen verstehen und muss bei einigen Anpassungen auch weiterhin manuell tätig werden.
  • "Sisyphos-Prinzip": Viel Zeit (und damit Geld) investieren und wirklich jede kleine Änderung durchlesen und verstehen.

Während jede Lösung für sich Nachteile hat, ist die gute Nachricht: Man kann alles miteinander vereinen, und mit sinnvollem Pragmatismus ein Hauptversionsupdate mit einem sicheren Gefühl durchführen.

Man sollte beim Lesen eines Changelog-Eintrags auch immer einen Blick auf das verlinkte Ticket zum jeweiligen Change werfen. Für jede Änderung gibt es (mindestens) ein Ticket, und vom Ticket aus gelangt man auch zu dem Link des tatsächlichen GIT-Changesets. Auch dort findet man wertvolle Informationen zur Motivation von Änderungen, Diskussionen über Sinnhaftigkeit und etwaige Probleme.

Den jeweils geänderten Code auch zu sichten bringt oft wichtige Einblicke: Im TYPO3-Kern sieht man z.B. direkt auch Anpassungen, die intern vorgenommen wurden, um mit Breaking Changes umzugehen. Man sieht z.B. wie ein ViewHelper oder ein Fluid-Template angepasst werden muss, oder wie eine Extbase-Action oder ein Type-Hinting angepasst werden muss, oder wie QueryBuilder-Abfragen umgestellt werden müssen.

Überhaupt: Ein Blick in den Sourcecode von TYPO3, also über den Tellerrand der eigenen Extension, lohnt sich immer. Man sieht die etablierten Best Practices, wie ein Extbase-Plugin strukturiert sein muss, wie und wo man QueryBuilder oder DataHandler einsetzt, und auch wie man Unit/Functional-Tests entwickeln sollte.

Fokus unseres Artikels

In unserem Artikel wird wirklich jede Anpassung an allen ChangeLogs beschrieben. In der Reihenfolge legen wir einen Fokus auf die Änderungen, die in unserem Agentur-Alltag seit 25 Jahren TYPO3 relevant sind. Die Bewertung des "Impacts" der Änderungen ist also stark subjektiv.

Wir wollen mit dem Artikel ebenfalls hervorheben, dass es einen großen Wert hat, sich auch schon in den Zwischen-Veröffentlichungen von TYPO3 (z.B. 13.0, 13.1 usw.) mit Änderungen zu beschäftigen. So kann man auf dem Weg zur finalen LTS-Veröffentlichung bereits die Weichen in der Entwicklung laufender Projekte stellen und kann aufkommende Deprecations bereits einplanen und macht sich dann beim nächsten TYPO3-Update weniger Arbeit.

Über Faktor E

Unsere Agentur, die Faktor E GmbH, ist an der TYPO3-Fortentwicklung involviert und mit Garvin Hicking beschäftigen wir einen Mitarbeiter, der im Core-Team als Framework-Merger aktiv mitarbeitet und uns einen zeitnahen Einblick in das Entwicklungsgeschehen gibt. Unser gesamtes erfahrenes Team mit mehreren zertifizierten Personen (Consultant/Integrator/ Developer/Editor) führt für Sie gerne TYPO3-Updates oder neue Projekte durch: Kontaktieren Sie uns!

Die kleinen Update-Helferlein

TYPO3 Code-Scanner, TYPO3 Rector, Fractor, phpstan/php-cs-fixer, Migrationswizards

Mit dem TYPO3-internen Code-Scanner ist es bereits komfortabel möglich, notwendige Anpassungen an eigenem Code automatisiert prüfen zu lassen. Die statische Code-Analyse jedoch ist nicht ganz treffgenau, denn es fehlen einige Analysen (z.B. dynamische Code-Aufrufe, TypoScript/Fluid-Anpassungen etc.). Auch gibt es zahlreiche "weak" matches, die Probleme melden, die nicht wirklich existieren. Derzeit sind von 328 ChangeLog-Einträgen 170 Änderungen mit Handlungsbedarf am Code. Davon sind 92 Änderungen nicht vom Code-Scanner erfasst, 19 nur teilweise erfasst und nur 59 vollständig erfasst. Das heißt: Man muss eigentlich bei mehr Änderungen nochmal manuell Hand anlegen, als der Code-Scanner erkennen kann.

Einige Änderungen werden unterstützt von TYPO3-Core Migrationswizards, die z.B. datensatzbasierte Änderungen automatisiert vorbereiten. Wo dies möglich ist, liefert der TYPO3-Kern solche Wizards mit aus.

Zusätzlich gibt es noch die hervorragenden Update-Tools wie TYPO3-Rector und Fractor, die nicht nur notwendigen Änderungsbedarf erkennen können, sondern auch Code-Änderungen automatisiert durchführen. Diese Regeln werden von der Community gepflegt, und Mithilfe ist auch hier sehr willkommen.

Konkret bietet TYPO3-Rector zum jetzigen Zeitpunkt 16 Regeln zur automatisierten Anpassung an. Während hier teils sehr zeitaufwändig manuell umzusetzende Regeln enthalten sind (z.B. ViewHelper nicht mehr mit "renderStatic" zu verwenden) sollte man sich bewusst sein: Man kann sich nicht alleine auf TYPO3-Rector verlassen!

Als gute Ergänzung von Rector/Fractor bietet sich die Nutzung von phpstan / php-cs-fixer an, besonders wenn mit einem TYPO3-Update auch ein PHP-Update verbunden ist. Vor allem durch Änderungen und Deprecations in Type-Hints/Deklarationen und Return-Types kann phpstan sehr viele notwendige Anpassungen offensichtlich machen.

Da TYPO3 v13 genauso wie TYPO3 v12 auch schon kompatibel mit PHP 8.2 bis 8.3 ist (bzw. auch sehr wahrscheinlich für PHP 8.4 ab dessen Veröffentlichung), gibt es hier dankenswerterweise keine zu erwartenden Schwierigkeiten. Es empfiehlt sich jedoch, bei einem TYPO3-Update auch immer auf die höchste unterstützte PHP-Version zu aktualisieren, und damit auch entsprechend alle selbst entwickelten Extensions und Fremdextensions auf Kompatibilität hin anzupassen.

Auf der nächsten Seite stellen wir die neuen Funktionen in TYPO3 v13 detailliert vor.

Inhaltsverzeichnis

Dieser Artikel besteht aus mehreren Unterseiten:

Einführung
Neue Funktionen
Breaking Changes
Deprecations