TYPO3 14.0 - Bugfixes und Verbesserung der Performance

Auch kleinere Bugfixes und Performance-Verbesserungen können eine spürbare Verbesserung auslösen.

Die meisten relevanten Bugfixes von TYPO3 14 wurden auch immer in die Version 13 (und teilweise auch 12) zurückportiert.

Somit sollten sich im Bereich der Bugfixes hier nur Dinge finden, die für eine Rückportierung zu "gefährlich" waren oder neue Komponenten betreffen.

Hervorhebenswerte Anpassungen sind:

  • Übergreifendere Nutzung der TCA Schema API
  • Direktes Anlegen von Redakteurs- und Administrationsaccounts
  • Optimierung von Button-Texten
  • Transparenzinformationen in Bildern werden besser ausgewertet
  • Umfangreichere Liste von zeitgemäßen "Media"-Dateiendungen
  • Entfernung der "font" und "center" HTML-Tags im RTE
  • Update auf Symfony 7.3
  • Zahlreiche Workspace-Änderungen
  • "cache:flush" CLI-Befehl kann nun Fehlermeldungen darstellen
  • Accessibility (a11y) Anpassungen
     

Bugfixes und kleinere Anpassungen

Generelle API-Anpassungen.

Zielgruppe: Entwicklung

Vermeidung von SessionHandler Optionen im Install-Tool Kontext.

Vermeidung eines Fehlers wenn Backend-Module AJAX-Routen mit dem Präfix "ajax_" benutzen.

DataHandler macht keine unnötige integer<>datetime Konvertierung mehr beim Daten-Import.

Dynamische URL-Ersetzung des Browsers im Install-Tool angepasst.

Anpassung der DefaultSettings.php Konfigurationssyntax zur korrekten Nutzung von "map" statt "element-list".

Der PHP-Prozess wird für Dateien im "/_assets/" Verzeichnis nicht mehr ausgeführt (.htaccess).

Bessere Benennung von involvierten (internen) Klassen beim 500/503 Fehlerrouting.

Seiten-Caches nach dem Speichern eines EXT:form Formulars werden geleert.

Die JavaScript "validateField" Methode für FormEngine-Validierung liefert nun keinen (unnötigen) Wert mehr zurück.

GoodieDie API für das Fluid-basierte Seiten-Modul ist nun nicht mehr @internal deklariert (z.B. BackendLayoutRenderer, PageLayoutContext, ContentFetcher, AbstractGridObject).

Zielgruppe: Entwicklung

Nutzung der UrlFactory zur Erzeugung von Links (und URL-Parametern) bei AJAX-Requests. Damit werden Kodierungsprobleme vermieden.

Zielgruppe: Entwicklung

Die Konfigurationsoptionen in den System-Einstellungen können nun auch Typen map und list verarbeiten, in denen beliebige Array-Schlüssel und -Werte definiert werden können (z.B. für die neue Bildtypen-Konfiguration).

Zielgruppe: Administration

WissenswertOptimierungen in Usability und Darstellung im Backend.

Zielgruppe: Redaktion

Entfernen von übersetzten Seiten wieder leicht möglich.

Die Anzahl der aus dem Clipoard einzufügenden Elemente wird nun richtig berechnet.

Vermeidung eines Vorschau-Element-Titel-Fallbacks, um Dopplungen von Unter-Überschriften zu verhindern.

Mehrsprachige Datensätze die keine Verbindung zu einer Sprache haben werden im "fallback" Sprach-Modus nun immer dargestellt.

Das aktivieren und deaktivieren von Datensätzen in der Datensatzliste wurde in eine dedizierte ControllerAction ausgelagert.

Vom TypoScript-Konstanteneditor wurde eine Verlinkung zum Site Settings Editor eingefügt.

Vordefinierte TCA-Paletten für "be_users" und "be_groups" ermöglichen nun strukturiertere Eingabefelder und leichteres ein/ausblenden von zugehörigen Optionen.

Der neue Konfigurationsoptionstyp "url" für die Settings API ermöglicht die Eingabe von validierbaren URLs.

Bei mehrsprachigen Seiten wird nun die Standardsprache immer als Vergleich/Kontext visualisiert, um klar zu zeigen in welchen Bereichen es inhaltliche Abweichungen gibt.

Beim Umbenennen einer Datei wird der aktuelle Dateiname direkt ausgewählt um ersetzt zu werden.

Die gerenderte Sitemap-XML Darstellung im Browser nutzt nun mehr Platz für den Link anstelle der anderen Felder.

Im Benutzerwechselmodus wird im Menü besser hervorgehoben, dass ein Benutzer simuliert wird.

Bei FormEngine-Tree-Feldern mit "maxitems=1" (z.B. Kategoriedatensätze) kann bei Klick auf einen anderen Datensatz direkt der vorherige entfernt werden, als Prozessvereinfachung.

Neue Administratoren und Editoren können nun direkt mit einem dedizierten "Neu anlegen" Button im Benutzermodul erzeugt werden.

Bei Erstellung eines neuen Datensatzes, für den nur ein Record-Typ erlaubt ist wird, direkt auf den korrekten Controller weitergeleitet.

Anpassung der Button-Texte von "Schließen ohne Speichern"-Dialogen.

Bessere CSS Button-Auszeichnungen für Web-Component-Buttons (z.B. "copy to clipboard").

Zielgruppe: Entwicklung

Datenbank-Layer.

Zielgruppe: Administration

Eine Exception wird nun geworfen falls eine QueryBuilder-Abfrage ein UPDATE/DELETE Statement ausführt dass JOINs nutzt (dies ist nicht von Doctrine unterstützt).

Die SQL-Deklaration "DEFAULT NULL" für VARCHAR Felder ist nun möglich.

Performance-Optimierungen für die Schema-Auslesung.

Das Modul "Referenz-Index" wurde von EXT:lowlevel in EXT:install verschoben.

Zielgruppe: Administration

Die Upgrade-Wizards wurden von EXT:install in EXT:core verschoben, so dass künftig keine harte Abhängigkeit mehr zu "EXT:install" bestehen muss. Auch die CLI-Befehle leben nun im Core.

Zielgruppe: Administration

Verbesserungen der Extbase API.

Zielgruppe: Entwicklung

Typisierung: Auch Extbase-Properties mit integer-Keys werden für den "allowProperty"-Aufruf nun erlaubt.

Das #[IgnoreValidation] PHP-Attribut wird nur innerhalb der ActionController Methoden ausgewertet, und nicht mehr an anderen (unnötigen) Stellen.

Die Extbase-QueryObjectModel (QoM) Klassen wurden mit starker Typisierung versehen.

Gesetzte Extbase-Validatoren eines Arguments werden immer aufgelöst.

Zielgruppe: Entwicklung

Dateiliste und zugehörige FAL-API.

Zielgruppe: Administration

Die direkte Erzeugung von "sys_file_storage" Datensätzen mit dem "Neue Inhaltselement"-Wizard wird vermieden, da nur für Root-Seiten möglich.

Datei-Transparenzinformationen werden bei imagemagick und graphicsmagick-Operationen nun immer beibehalten, wenn möglich.

Die Standard-Dateiendungen für erlaubte "mediafile_ext" Konfiguration wurde auf übliche, moderne Dateiformate angepasst.

Die Methode ResourceStorage->getUniqueName() wurde optimiert, so dass die "automatische Dateinummererhöhung" bei Duplikaten weniger Kollisionen erzeugt und performanter abläuft.

Optimierungen der Nutzung von TCA und Anpassungen in FormEngine.

Zielgruppe: Administration

Fehlerbehebung bei Validierung von neu erstellten Datensatzfeldern in FormEngine.

Die Auswertung von Fremdschlüsseln in Relationen erfolgt nun anhand der vollständigen Datenbank-Zeile, und nicht nur Teilen davon.

Automatische Erstellung von sprachrelevanten Datenbank-Indexen anhand der TCA-Definition.

sys_file_storage nutzt nun richtige TCA typdefinitionen.

Anpassung von Tests.

Zielgruppe: Entwicklung

Einige Umbauten von Unit auf Funktionale Tests, weitere Extbase-Tests (z.B. FileUpload, DateTime-Handling, Upgrade-Wizards) eingefügt.

Migration einiger Akzeptanz-Tests von "Codeception" hin zu "Playwright", Optimierungen der Playwright-Einbindung (GUI).

Zielgruppe: Entwicklung

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.