TYPO3 14.0 - Modernisierung des Codes und Entschlackung

Unter der Haube ändern sich bei TYPO3 auch regelmäßig die Code-Basis für notwendige Modernisierung, Umstrukturierungen und neue interne Methoden, die nicht direkt Auswirkung auf Erweiterungen oder Implementationen haben müssen.

Im Bereich der Aufräumarbeiten sind die meisten Änderungen nur für Menschen interessant, die gerne einen Blick "hinter die Kulissen" werfen wollen.

Diese Änderungen haben für Extension-Entwicklung und Integration meist keine größere Relevanz, da sie nur die Core-Entwicklung betreffen.

Manchmal sind dies jedoch auch schon Vorboten von künftigen Deprecations oder Breaking Changes. 

Zum Code-Cleanup zählen Dinge wie:

  • Mehr Nutzung von Dependency Injection
  • Mehr "stateless services"
  • Bessere Nutzung von D(T)O's (Data Transfer Objects)
  • Mehr strikte Typisierung, vollständigen Methoden-Signaturen
  • Verhindern von PHP Typfehlern (Array-Zugriffe)
  • PHP 8.5-Syntaxkompatibilität
  • Entfernung ungenutzten Codes
  • Ausdünnung von großen Gott-Klassen in eigenständige Services
  • Auflösen von @todo's
  • Anpassung von final, protected/private und readonly Auszeichnungen

Durch die ständige "Auffrischung" auch der älteren Code-Basis bleibt TYPO3 zeitgemäß. Die Updates verwendeter Abhängigkeiten (Dependencies) und Optimierungen in der Buildchain zählen auch zu "under the Hood"-Verbesserungen, die das System wartbar halten. Auch das Aufräumen von bestehenden PHPStan "Baseline"-Einträgen ("Code smell") führt zu besserem Code.

Hervorhebenswerte Anpassungen sind:

  • Anpassung der internen ResourceFactory
  • Typ-Deklaration der "render()" Methode von Core-ViewHelpern
  • Nutzung von Symfony DI im Install-Tool-Kontext möglich

Aufräumarbeiten im Code und Modernisierung

WissenswertCode-Cleanup.

Zielgruppe: Entwicklung

Generelle Code-Wartungsarbeiten.

Die Attribute jsFooterLibs, jsFooterInline und jsFooterFiles
wurden aus dem PageRenderer entfernt, da sie nicht mehr ausgewertet wurden.

TreeController Klasse bereinigt.

TagBuilder (Fluid) deklariert nun "null" Werte in Attributen konsistent als leeren String.

Als Vorbereitung auf die System Resources API wurden einige Code-Stellen bereinigt, die URLs für Resourcen/Assets herstellen (Pfadangaben zu URLs konvertieren).

FileProcessingService konnte readonly deklariert werden.

FileIndexRepository konnte readonly deklariert werden.

FileSessionHandler nutzt eine korrekte Nullable-Instanzierung.

ResourceFactory wurde aufgeräumt, die internen public Methoden für einige Schnellzugriffe auf Daten entfernt, die erst innerhalb des erzeugten Objekts zur Verfügung stehen würden.

Das LoggerInterface kann nun ReflectionAttributes auswerten.

ContentObjectRendererstdWrapOrder ist nun als Klassenkonstante ausgelagert.

Umstellung eines alten marker-based Templates auf Fluid für interne PageRenderer Aktionen.

Vermeidung einer Trait-Property in DefaultJavaScriptAssetTrait.

Der ContentObjectRenderer kann nun Dependency Injection nutzen. Zahlreiche Tests wurden angepasst, Zugriff auf Caching und weiteres refactored.

Die ContentContainer API kann nun "URL" Objekte direkt verarbeiten.

Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen.

Garvin Hicking
Senior Developer

BITV Check - Wir prüfen Ihre Website oder Ihr digitales Produkt.

Wir setzen die Projekte unsere Kunden nicht nur BITV-konform um, wir prüfen auch Websites, Apps und digitale Produkte hinsichtlich der gesetzlichen Anforderungen. Buchen Sie unser 30-Minten-Erstgespräch - unverbindlich, klar und kompetent. Denn digitale Barriefreiheit ist Pflicht.