TYPO3 14.2 - 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.

Aufräumarbeiten im Code und Modernisierung

WissenswertUpdate von phpstan/phpdoc-parser damit symfony/ai Pakete eingebunden werden können.

Zielgruppe: Entwicklung

GoodieDie Symfony PropertyInfo-API wurde mit einem Adapter zum modernen Handling von TypInfos ausgebaut, z.b. für Reflection API.

Zielgruppe: Entwicklung

Update von bacon/bacon-qr-code 3.0.4.

Zielgruppe: Entwicklung

GoodieSymfonyRoutes können nun einfach in die TYPO3-Route-Objektinstanz gewandelt werden.

Zielgruppe: Entwicklung

Nutzung von mehr PHP 8 Features für einfacheren Code.

Zielgruppe: Entwicklung

GoodieEinfügung einer neuen Backend Sidebar Registry. Hierrüber können Komponenten für den linken Navigationsframe im Backend registriert und eingesetzt werden. Diese API ist vorerst intern.

Zielgruppe: Entwicklung

Korrekte Nutzung von "@deprecation" annotations in einigen install/scheduler Klassen.

Zielgruppe: Entwicklung

Verbesserte Code-Aufteilung um LiveSuche in der Backend-Navigation isolieren zu können.

Zielgruppe: Entwicklung

Die interne DataHandler property excludedTablesAndFields konnte entfernt werden, da bereits über das BE_USER Objekt zugänglich. Refactoring der copyRecord Methode um "Übersetzen" und "Kopieren" funktional zu entkoppeln.

Zielgruppe: Entwicklung

Mehrere Events können nun direkt auf den request Kontext zugreifen, und können so $GLOBALS['TYPO3_REQUEST'] vermeiden.

Zielgruppe: Entwicklung

WissenswertAuch timestamp-basierte Datenbankfelder werden nun bei der Darstellung im Backend nun immer in ein DateTime-Objekt konvertiert und sorgen so für Einheitlichkeit.

Zielgruppe: Entwicklung

Das PageRepository muss keine redundanten Datenbankabfragen für die Methode getWorkspaceVersionOfRecord mehr durchführen .

Zielgruppe: Entwicklung

Sehr wichtigEntfernung einiger Bootstrap CSS Utility Klassen und ungenutzten JS-Komponenten. Die "Popover"-Komponente wird nun eigenständig implementiert. WICHTIG: Falls man diese in eigenen Backend-Modulen genutzt hat, müssen Sie nun mit eigenem CSS/JS integriert werden, oder das HTML angepasst werden!

Zielgruppe: Entwicklung

Das Beschneiden von Seitentiteln in einigen Backendmodulen erfolgt nun nicht mehr hart im PHP/Fluid-Code, sondern mittels CSS.

Zielgruppe: Entwicklung

Der Seitenbaum des Page-Browser-Modals klappt nun bei Auswahl einer einzelne Seiten-ID auch den Seitenbaum so aus, dass die übergeordneten Seiten im Seitenbaum ausgeklappt werden, im Kontext zur aktuell gewählten Seite.

Zielgruppe: Redaktion

Erhöhung der Accessibility (a11y): Nutzung von "label" anstelle von "legend" für das TCA SlugElement, verbesserte TAB-Reihenfolge der Toolbar-Buttons in der Datensatzliste. Dropdowns mit mehrstufigen Inhalten können per Tastatur navigiert und genutzt werden.

Zielgruppe: Redaktion

Bereinigung von Fehlern in der PHPStan baseline, Setzung der Option "treatPhpDocTypesAsCertain: false" (war bislang "true"). "Named Arguments" im Core werden nun anhand der festgelegten Regeln forciert.

Zielgruppe: Entwicklung

Korrektur der Schreibweise von "createFromDatabaseValueAndTCAConfig()" und "sL()".

Zielgruppe: Entwicklung

Die Funktionen zur Verwaltung der "offenen Dokumente" in der Taskleiste wurden zentralisiert (in EXT:opendocs) und modernisiert in Bezug auf die interne Implementation.

Zielgruppe: Entwicklung

Die Verarbeitung der "Cache leeren" Toolbar nutzt intern nun eigenständige Routen und einen dedizierten Handler.

Zielgruppe: Entwicklung

Eine zentrale interne Methode der FormEngine-Verarbeitung (FormResultCompiler) wurde modernisiert und auf eigenständige Service-Bereiche aufgeteilt.

Zielgruppe: Entwicklung

GoodieEine der hässlichsten URL-Übertragungsparameter "bParams" im Element-Browser-Popup wurde gegen bessere De/Serialisierung ausgetauscht.

Zielgruppe: Entwicklung

GoodieDer "Popup-Wizard-Service", primär beim Lokalisierungsworkflow im Einsatz, wurde nun als generische Komponente auch für weitere Wizards ausgelagert (z.B. Inhaltselemente, Formulare).

Zielgruppe: Entwicklung

Entfernung nicht mehr benötigter interner JavaScript-Events sowie HTML-Ausgaben die von webkomponenten übernommen wurden.

Zielgruppe: Entwicklung

Sehr wichtigEntkoppelung von FormEngine und $GLOBALS['TCA']. FormEngine nutzt nun die TCA Schema API.

Zielgruppe: Entwicklung

WissenswertKeine Nutzung mehr von getIndpEnv zugunsten des PSR-Request-Objekts und NormalizedParams.

Zielgruppe: Entwicklung

Anpassung von e2e playwright tests für mehr Stabilität.

Zielgruppe: Entwicklung

WissenswertAnpassung von Tests, Nutzung von .fluid.html Suffix, Update auf Fluid Standalone 5.2.0 um Randfälle in der Sortierung von Template/Partial/Layout-Overrides bzw. Vererbung zu beheben. Normalisierung von Slashes in Komponenten-Templatepfaden angepasst. Nutzung von Symfony DI für Delegator Resolver. Besserer Objektvergleich und interne Typ-Deklarationen.

Zielgruppe: Entwicklung

Vermeidung von TYPO3_CONF_VARS Zugriff für Fluid-Namespacedefinitionen bei Core-Methoden.

Zielgruppe: Entwicklung

Weitere Formatierungs- und Text-Verbesserungen bei Labels.

Zielgruppe: Redaktion

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.