bunte Seile

Update auf TYPO3 v10.4 LTS – Features und Fallstricke

Die TYPO3 v10.4 LTS ist im April 2020 erschienen. Seitdem konnten wir bereits einige Erfahrungen mit der neuen Version sammeln, welche wir hier gerne teilen möchten.

Features der TYPO3 v10.4 LTS

Eine neue Major Version von TYPO3 bringt immer eine Reihe von neuen Funktionen mit sich. Oft werden wir von Kunden gefragt: „Was bringt uns das Update?“. Und sicherlich ist die Frage berechtigt.

Prinzipiell spricht immer für ein Update, dass Neuentwicklungen so länger supported werden können. Sprich eine Extension, welche für die aktuelle TYPO3-Version mit aktuellen Standards umgesetzt wird, ist langlebiger ohne das große Veränderungen am Code vorgenommen werden müssen. Wird auf einen älteren Stand entwickelt, muss später bei einem Update, auch die Extension aktualisiert werden. Das erhöht ggf. wiederrum den Aufwand für die verzögerte Aktualisierung.

Darüber hinaus liefern neue Major Versions zahlreiche neue Features sowohl für Redakteure als auch für Entwickler.

Neuerungen für Redakteure

Hier sind unsere Highlights für Redakteure in der TYPO3 v10.4 LTS.

TYPO3 Dashboards

Dashboards bieten dem Redakteur die Möglichkeit, wichtige Informationen bezüglich seiner Webseite individuell und übersichtlich anzuzeigen. Ein Dashboard setzt sich aus verschiedenen Bestandteilen zusammen, sogenannte Widgets. Diese Widgets lassen sich individuell platzieren.

Dashboard-Modul im TYPO3-Backend

Das neue Dashboard-Modul bringt bereits einige Widgets mit sich. Ein Widget zeigt beispielsweise, wie viele Login-Versuche in den letzten 24 Stunden fehlgeschlagen sind. Sicherlich werden hier in Zukunft noch einige Widgets und Funktionen folgen. Auch TYPO3-Extensions können eigene Widgets mit sich bringen.

Das Dashboard wird standardmäßig direkt nach dem Login für den Redakteur sichtbar.

Automatische Weiterleitungen

Ändert sich das Pfadsegment für eine URL, so musste bisher immer noch händisch eine Weiterleitung von der alten zur neuen URL angelegt werden. Ansonsten wäre das SEO-Ranking für die URL verloren gegangen und bisherige Verlinkungen würden ins Leere laufen. Mit der neuen TYPO3-Version wird bei der Änderung einer URL die entsprechende Weiterleitungen automatisch angelegt.

HTML E-Mails

Bisher wurden die TYPO3 eigenen E-Mails im Textformat versendet. Mit der TYPO3 v10.4 LTS kommen diese im HTML-Format daher. Zudem lassen sie sich individuell gestalten.

Barrierefreiheit

Im neuen TYPO3 v10.4 LTS kann im Seitenbaum mit Hilfe der Pfeiltasten navigiert werden. Damit lässt sich das Backend weitestgehend auch mit der Tastatur bedienen.

Passwort zurücksetzen für Redakteure

Wem passiert es nicht hin und wieder? Man will sich nur mal schnell im TYPO3-Backend anmelden und kommt einfach nicht rein. Die Kollegen oder die Agentur zu fragen, ob das Passwort geändert werden kann, kostet beide Seiten Zeit. In TYPO3 v10.4 LTS kann der Redakteur nun selbst sein Passwort zurücksetzen.

Loginmaske in TYPO3 mit Link zum Passwort zurücksetzen

Neuerungen für Entwickler

Mit der Version 10.4 LTS hielten auch einige coole Neuerungen für Entwickler Einzug in den TYPO3-Kern. Über 120 neue Funktionen kamen hinzu. Hier sind unsere persönlichen Sahnestücke.

PSR-14 Event Handling

Das Erweitern des TYPO3-Kerns und Extensions für eigene Projekte ist unser täglich Brot. Mit dem PSR-14 Standard bekommen wir Entwickler ein robustes und performantes Werkzeug an die Hand, um an spezifischen Stellen, eigene Codes ausführen zu können. Weitere Informationen hierzu in der TYPO3-Dokumentation.

Dependency Injection

Mit der Dependency Injection werden Abhängigkeiten von Objekten an einem zentralen Ort hinterlegt. Eine Klasse muss notwendige Klassen nicht eigenständig initiieren. Bisher kam die Dependency Injection größtenteils nur in Extbase Controllern zum Einsatz. In TYPO3 v10.4 LTS werden die Abhängigkeiten über eine Services.yaml oder Services.php geregelt und der Einsatz somit erweitert. Zudem ist diese Variante performanter. Mehr dazu in der offiziellen TYPO3-Doku.

felogin mit Extbase und Fluid-Templates

Das letzte PiBase basierte Plugin im TYPO3-Kern ist migriert. Zur Freude aller, kann nun auch das Frontend-Login mit Fluid-Templates individuell angepasst werden.

Asset Collector

Mit dem Asset Collector ist es möglich, direkt im Fluid CSS- und JavaScript-Code hinzuzufügen. Dies ist besonders bei Inhaltselementen sinnvoll. Somit können auf einer Seite auch nur für diese Seite alle benötigten Ressourcen geladen werden. Im Fluid sieht das Ganze wie folgt aus.

<f:asset.css identifier="accordion" href="EXT:my_ext/Resources/Public/Css/accordion.css" />
<f:asset.css identifier="inlineAccordion">
.ac { background: green; }
</f:asset.css>

<f:asset.script identifier="accordion" src="EXT:my_ext/Resources/Public/JavaScript/accordion.js" />
<f:asset.script identifier="inlineAccordion">
console.log('Hello World!');
</f:asset.script>

Aber auch im PHP kommt der Collector zum Einsatz. Mehr dazu im TYPO3 Change Log.

Lazy Image Loading

Im mobilen Zeitalter gilt es, Webseiten schnell laden zu können und Datenübertragungsraten zu sparen. Bilder spielen hierbei eine zentrale Rolle. Um die Bilder auch wirklich nur dann anzuzeigen, wenn sie im sichtbaren Bereich für den Nutzer liegen, wurden in der Vergangenheit bereits verschieden Lazy-Loading Frameworks veröffentlicht. Mittlerweile soll es einen HTML5 Standard hierfür geben. Mehr dazu erfahren Sie hier. Auch wenn dieser Standard noch nicht von allen Browsern unterstützt wird, wird er dies bereits von TYPO3 v10.4 LTS.

<f:image image="{myLazyImage}" loading="lazy"/>

Update auf die TYPO3 v10.4 LTS

Verglichen zu den bisherigen Major-Versionen ist ein Update auf die TYPO3 Version 10.4 von der 9.5 relativ einfach möglich. Sicherlich ist der Aufwand von Projekt zu Projekt unterschiedlich, aber der Core bringt einige Tools mit sich, welche den Entwicklern das Leben erleichtern.

Change Log

Der Change Log beinhaltet alle Änderungen einer TYPO3-Version. Mittlerweile sind diese sehr gut dokumentiert. Vor allem ein Blick auf die sich darin befindlichen Breaking Changes lohnt sich. Breaking Changes sind potentielle Fehlerquellen bei Updates, da sie ein Entfallen von bisherigen Funktionen bedeuten. Der Changelog ist online hier einsehbar.

Extension Scanner und Co.

Im TYPO3-Backend befindet sich für TYPO3-Maintainer ein ganzes Modul zum Thema „Aktualisierung“. Der Change Log ist hier ebenfalls unter dem Punkt „View Upgrade Documentation“ zu finden inkl. Stichwortsuche.

Aktualisierungs-Modul im TYPO3-Backend

Die nachfolgenden Tools sollten bei jedem Update durchlaufen werden

  • Check TCA in ext_tables.php – Schaut in den Extensions, ob Veränderungen am TCA in einer ext_tables.php vorgenommen werden. Diese Funktion ist deprecated. Die Veränderungen sollten unter Configuration/TCA/ und Configuration/TCA/Overrides erfolgen.
  • Check for Broken Extensions – Überprüft grundlegend, ob die ext_localconf.php und ext_tables.php der installierten Erweiterung in der aktuellen TYPO3-Version ausgeführt werden können oder ob sie Fehler enthalten.
  • Check TCA Migrations – Hier werden alle TCA-Erweiterungen in Extensions nach veraltetem Code überprüft. Eventuelle Aktualisierungshinweise werden ebenfalls gegeben. Nähere Informationen findet man unter der bereits erwähnten Funktion „View Upgrade Documentation“.
  • Scan Extension Files – Der Extension Scanner. Das Tool erleichtert das Updaten von Extensions ungemein. Es untersucht sämtlichen PHP-Code der Extensions. Pro Extension werden Fehler und Deprecations ausgegeben und Verbesserungsvorschläge gezeigt. Sollte eine Meldung mal irrtümlich ausgegeben werden, ist es möglich mittels Annotationen die gewünschte Zeile oder die gesamte Klasse vom Scanner auszuschließen.
// @extensionScannerIgnoreLine
$foo->someFalsePositiveMatch('foo');
<?php

/**
 * @extensionScannerIgnoreFile
 */
class SomeClassIgnoredByExtensionScanner
{
    ...
}

Fallstricke beim Update auf die TYPO3 v10.4

Mit Fallstricken ist hier gemeint, worauf bei einem Update auf die TYPO3 v10.4 zu achten ist und worauf die Extension-Autoren stoßen werden? Hier sind ein paar Beispiele, was uns bei den Updates aufgefallen ist. Teilweise enthalten die Beiträge Verlinkungen zum TYPO3-Changelog mit der jeweiligen Ticketnummer (#…).

showRecordFieldList ist depracted (#88901)

Im TCA wurde bisher immer angegeben, welche Felder im Backend unter „Info“ angezeigt werden sollen. Jetzt werden alle Felder je nach Typ ausgegeben. Die entsprechende Stelle „showRecordFieldList“ unter „interface“ wird nicht mehr interpretiert.

TypoScript Conditions

Mit TYPO3 v8 hielt die Symfony Expression Language Einzug in den TYPO3-Kern. Nun ist die neue Notation für TypoScript Conditions verpflichtend, alte Conditions werden nicht mehr evaluiert.

Überschreiben von Extbase-Objekten

Bisher konnten Extbase-Objekte wie Modelle und Controller via TypoScript überschrieben und somit erweitert werden. Die Registrierung der Klassen hat sich in TYPO3 v10 verändert. Mehr dazu findet ihr in unserem Blog-Beitrag.

Switchable Controller Actions sind deprecated (#89463)

Eine der wohl größten Änderungen ist, dass die Switchable Controller Actions nun veraltet sind. Was schon länger befürchtet wurde, ist nun offiziell. Die Folge ist, dass die Actions in separate Plugins aufgeteilt werden müssen. Der Vorteil hiervon ist, dass genauer festgelegt werden kann, welche Actions gecacht werden können. Um weiterhin eine gewisse Übersichtlichkeit im Backend zu gewährleisten, können die Plugins nun gruppiert werden. Hierfür wurde im TCA eine neue Gruppierungsfunktion für Select-Elemente geschaffen.

Angabe von Klassen bei Plugins und Modulen (#87550)

Bei der Registrierung von Plugins und Modulen werden die jeweiligen Kontroller angegeben. Bisher wurde hier der Vendorname und der Extensionkey zusammen angegeben und die Kontroller nur mit dem Klassennamen registriert.

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
    'Clickstorm.cs_seo',
    'web',
    'mod1',
    '',
    [
         'Module' => 'pageMeta, pageIndex, pageOpenGraph, pageTwitterCards, pageResults, pageEvaluation'
    ]
);

Jetzt wird der Extension-Name ohne Vendor angegeben und die Kontroller dafür mit dem vollständigen Namespace registriert.

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
    'cs_seo',
    'web',
    'mod1',
    '',
    [
        \Clickstorm\CsSeo\Controller\ModuleController::class => 'pageMeta, pageIndex, pageOpenGraph, pageTwitterCards, pageResults, pageEvaluation'
    ]
);

Aktualisieren Sie Ihr TYPO3

Wie jedes Update auf eine TYPO3 Major Version, bringt auch diese Version wieder einige Leckerbissen mit sich. Damit auch Sie von den Neuerungen profitieren können, gilt es das eigene Projekt zu aktualisieren. Sollten Sie hierbei Hilfe benötigen, nehmen Sie direkt Kontakt mit uns auf.

Haben Sie bereits eigene Erfahrungen mit einem Update auf die TYPO3 v10.4 gesammelt? Dann schreiben Sie uns gerne Ihre Erfahrungen in einem Kommentar.

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.