For coders TYPO3 Tech Corner

in2publish_core 9.5.0 Performance, sorting publishing, cleanups und fixes

in2publish_core 9.5.0 Performance, sorting publishing, cleanups und fixes

Die vielleicht schnellste Version der Community Edition aller Zeiten – Content Publisher Release 9.5.0 veröffentlicht

Wie der Titel schon vermuten lässt, Gibt es ein neues Minor Release mit spannenden neuen Features. Wie wir mit dem 9.4.0 Release angekündigt haben, schreiten wir mit großen Schritten auf die Major Releases 10.x und 11.x zu. Dabei konzentrieren wir uns weiterhin auf UI-Optimierungen und Sicherheit.

Blick auf die Bugfixes

  • Die Zuordnung von Datensätzen zu übergeordneten Datensätzen, die als Übersetzung geholt werden, wurde korrigiert
  • Verwendung von = statt LIKE für Constraints, die nur Ziffern enthalten (Dank an @friggingee hier)
  • Verwendung bereits existierender Datensätze bei der Suche nach Datensätzen über einen einzelnen Bezeichner
  • Einige Logger, die nichts Nützliches aufzeichneten, wurden entfernt
  • Füge Felder zu sys_redirects nur hinzu, wenn EXT:redirects aktiv ist
  • Verarbeite keine Dateien, die nicht existieren (Ursache muss noch behoben werden)

Die neuen Features

Um ehrlich zu sein, ist die erste Funktion im zweiten Bugfix versteckt, die die Abfragen in Abhängigkeit von den in den Constraints verwendeten Werten ändert. Die einfache Verwendung von = anstelle von LIKE beschleunigt die Extension, da die Datenbank nicht erst eine ganze Tabellenspalte in einen String umwandeln und den Index vernachlässigen muss. Wir haben zwischen -3% und -44% Ausführungszeit für das Publish Overview Modul gemessen. Das ist fantastisch!

Als nächstes: "Respect rootLevel, allowedTables and skip empty tables or missing PIDs". Teilweise ein Bugfix, teilweise ein Feature. Entwickler wissen, dass TYPO3 verschiedene Mechanismen hat, die es erlauben oder verbieten, dass bestimmte Arten von Datensätzen auf bestimmten Seiten oder an bestimmten Stellen im Seitenbaum erstellt und gespeichert werden. Der Content Publisher hat sich bei der Suche nach Datensätzen, die auf Seiten gespeichert sind, nicht an diese Regeln gehalten, was zu einer großen Anzahl von Abfragen führte. Diese Regeln sind als rootLevel-Beschränkung und allowedTables je nach Seitentyp bekannt. Darüber hinaus nimmt der Publisher einblick in die Inhalte der Tabellen, die abgefragt werden. Mit den Informationen, die er durch den Blick in die Tabelle erhält, kann er nun entscheiden, weitere Abfragen an diese Tabelle zu überspringen, da sie entweder leer ist oder keinen speziellen Wert enthält (die gesuchte PID). Diese Funktion reduziert noch mehr überflüssige Abfragen und steigert damit die Performance.

Die letzte große Änderung heißt "publishSorting". Diese Funktion überwacht den Veröffentlichungsprozess und erkennt Änderungen in der Reihenfolge der veröffentlichten Seiten und Datensätze. Wenn eine Änderung festgestellt wurde, veröffentlicht die Funktion "publishSorting" die Sortierung aller Datensätze, die von dieser Änderung betroffen sind (aber keine anderen Eigenschaften der besagten Datensätze). Auf diese Weise kann die Reihenfolge der Datensätze gepflegt werden, ohne dass alle von der Sortierungsänderung betroffenen Datensätze manuell veröffentlicht werden müssen.

Im Rahmen der Verbesserungen von in2publish ist es  gelungen auch noch in2publish_http 6.0.0 fertigzustellen. Das bedeutet 13 Dateien und 700 Zeilen weniger Code. Der Adapter ist nun sicherer und schneller als je zuvor. Und er ist so sauber!

Ausblick

Der Content Publisher unterstützt alle aktiven LTS-Versionen. Das bedeutet: Der Content Publisher Support für TYPO3 v9 wird mit dem TYPO3 v9 LTS EOL (End of Life) am 30. September enden.

Da die Kompatibilität mit TYPO3 v11 (an der wir bereits arbeiten) Änderungen am HTML unserer Backend-Module und PageTree-Hooks erfordert, nutzen wir die Gelegenheit, um die UI weiter zu modernisieren. Um TYPO3 v10 noch bis zu seinem EOL am 30. April unterstützen zu können, veröffentlichen wir ein neues Major Release (in2publish_core 10.0.0 und in2publish 10.0.0) das die TYPO3 v10 unterstützen wird, und eine Version, die TYPO3 v11 unterstützt (in2publish_core 11.0.0 und in2publish 11.0.0).

Wir erwarten keine großartigen Änderungen an der Benutzeroberfläche nach TYPO3 v11, so dass in2publish_core und in2publish 11.0.0 wahrscheinlich wieder beide Versionen unterstützen werden, wenn TYPO3 v12 erscheint.

Wenn Sie mehr über die neue Version erfahren möchten, nehmen Sie Kontakt mit uns auf.

Florian Froidevaux

SEO Projekte und Online-Marketing?

Haben Sie Fragen zu SEO und Online-Marketing?

Unser Spezialist Florian Froidevaux hilft Ihnen gerne weiter.

Florian Froidevaux  |  Marketing Manager

Kennst du das: Immer nur schnell schnell?

Wie wäre es einmal mit Zeit und Respekt für Codequalität? Arbeiten im Team? Automatisierte Tests?

Komm zu uns

Unterrichtsausfall - und nun? Neues Portal für das Bayerische Staatsministerium für Unterricht und Kultus

Für das Bayerische Staatsministerium für Unterricht und Kultus durften wir eine neue WebApp bzw. ein neues Portal auf Basis eines bereits bestehenden, aber stark veralteten Portals entwickeln. Das...

Zum Beitrag

SQL: Zeige alle Tabellen absteigend nach Größe sortiert

Ich brauche in letzter Zeit häufiger den SQL-Befehl, um herauszufinden, welche Tabellen in der TYPO3-Datenbank am größten sind. Ich habe das Snippet einmal veröffentlicht.

Zum Beitrag

TYPO3 12 mit CKEditor 5: Stile als Einfachauswahl

Wenn man im RTE in TYPO3 einen Link setzt, kann es sein, dass man zwischen verschiedenen Link-Klassen auswählen muss, um beispielsweise Buttons im Frontend zu erzeugen. Neu ist in TYPO3 12 dass man...

Zum Beitrag

Null-Safe Operator im TYPO3-Bereich

Spätestens mit dem Einzug von PHP8 kann es an vielen Stellen zu Problemen mit undefinierten Arrays oder Variablen im Allgemeinen kommen. Hier ein paar Beispiele und einfache Lösung dafür.

Zum Beitrag

Die ersten/letzten Zeilen einer (SQL)-Datei löschen

Zu den nachfolgenden Befehlen gibt es eigentlich nicht viel zu sagen. Manchmal kann es nützlich sein, die ersten (bzw. letzten) X Zeilen aus einer Datei zu löschen. Und wenn die Datei zu groß zum...

Zum Beitrag

b13/container: Kindelemente in der Bearbeitungsansicht hinzufügen und ändern

Anders als in gridelements kann man in der Extension Container von B13 die Kindelemente nicht verwalten, wenn man den Container in der Bearbeitungsansicht öffnet. Wie man das schnell selber einbauen...

Zum Beitrag