StaticFileCache v10 – Schneller kann TYPO3 nicht werden!

Oktober 10, 2019 Tim Lochmüller

Heute wurden die StaticFileCache in der Version 10 veröffentlicht (TER / GitHub). Mit dem Major Sprung gab es wieder einige Neuerungen, welche ich euch kurz vorstellen will. Unter der Haube hat sich einiges getan…

PS: Du kennst StaticFileCache noch nicht? Nicht schlimm 🙂 Aber dann ließ am Besten erst den Beitrag!

Middleware: Die Zukunft!

Die Hooks zur Erzeugung der Cache-Dateien wurden vollständig gegen den Middleware-Mechanismus getauscht. Dadurch ist die Schnittstelle deutlich besser standardisiert und man hat als Entwickler Einfluss darauf was davor oder danach passieren soll, falls man StaticFileCache weiter anpassen möchte. Dabei wurden die Funktionen auf mehrere Middlewares aufgeteilt. Es gibt eine Middleware, welche die Cache-Nutzung prüft und eine weitere welche die Generierung der Dateien vornimmt. Zusätzlich ist die Fallback Middleware nun fertig. Diese ist in der Lage den StaticFileCache auszuliefern, falls die htaccess Datei falsch konfiguriert ist oder es andere Gründe gibt, warum die htaccess Datei nicht passend umleitet.

TYPO3 9 + 10

Mit der Erhöhung der Kompatibilität auf TYPO3 10 und der Umstellung auf den Middleware-Mechanismus ist TYPO3 8 „auf der Strecke geblieben“. Für TYPO3 8 kann weiterhin StaticFileCache Version 9 benutzt werden. Der Schritt vereinfacht es, neue Funktionen in die Extension aufzunehmen, sodass die Extension für die Zukunft gewappnet ist. Zudem konnten in dem Zuge zahlreiche alten Funktionen entfernt werden (sys_domain – Informationen, alte Konfigurationen, alten Command Controller, Publish-Funktionen etc.) und das Backend-Modul wurde entsprechend optisch ein wenig angepasst.

ObjectFacory auf Basis von TYPO3_CONF_VARS

Um auf Hooks zu verzichten und externen Entwicklern wirklich guten Einfluss auf die dynamischen Komponenten der Extension zu geben, wurde die Registrierung der Klassen umgestellt. Es gibt nun eine zentrale Default Registrierung und eine ObjectFactory, welche die Objekte daraus aufbaut. Auf diese Weise lassen sich nun folgende Komponenten einfach erweitern/entfernen/umsortieren etc.:

  • Generator (ein Generator ist immer für eine Datei in dem Cache verantwortlich. Auch die htaccess Datei ist inzwischen als ein Generator verfügbar.)
  • HttpPush (regelt die Erkennung und Erzeugung von HTTP Push Headern.)
  • CacheRule (Alle Regeln, welche durchlaufen werden, wenn eine URL in den Cache aufgenommen werden soll.)
  • CacheRuleFallback (Alle Regeln, welche durchlaufen werden, wenn eine statische Datei anhand der URL als Fallback ausgeliefert werden soll. Achtung: Hier können keine TYPO3 Core Funktionen wie TSFE etc. benutzt werden.)

Header via Response

Die Header werden nun deutlich besser/sauberer gehandhabt. Dabei wird auf das einheitliche Response Objekt aufgebaut, sodass es leichter ist, die gleichen Header zu senden, welche auch von TYPO3 geschickt werden. Win-Win. Dadurch ist der Code und die Generierung deutlich übersichtlicher und einfacher geworden. Zudem können weitere Header, welche in die htaccess Generierung mit aufgenommen werden sollen, einfach per Konfiguration definiert werden. Zudem wurde versucht weitere Abhängigkeiten vom TSFE zu entfernen, sodass auch dort das Response Objekt benutzt wird.

Sonstiges

Unter der Haube gibt es zudem noch kleinere Anpassungen. So gibt es nun z.B. eine Regel, die prüft ob das einzelne Pfadsegment zu lang für einen Ordnernamen ist. Zusätzlich ist es möglich rawurldecode auf den Pfad auszuführen, sodass diese auch Sonderzeichen bzw. Sprachen unterstützt.

Wie geht es weiter…

Alles in allem ist es ein sehr cooler Release geworden. Bitte probiert die neue Version aus, erfreut euch über schnelle TYPO3 Seiten und schickt uns Feedback via GitHub oder TYPO3 Slack: https://github.com/lochmueller/staticfilecache

Mehr Speed für das TYPO3 nötig?

Als TYPO3 Agentur haben wir bereits seit 1999 Erfahrungen sammeln können.
Wir optimieren die Ladezeiten eurer TYPO3 Website!

Share This: