TYPO3 Caching Framework in eigenen Extensions nutzen

31. Dezember 2012 von Lukas Stolz Veröffentlicht unter Know-how/Tipps&Tricks Verschlagwortet mit , , ,

Das Caching Framework stammt zu grossen Teil von FLOW3 und dient dazu, TYPO3 Seiten zu beschleunigen. Anders als das alte Cachingsystem, welches nur die TYPO3 eigenen Tabellen benutzt, bietet das Caching Framework viele verschiedene Möglichkeiten, Caches zu speichern. Zum Beispiel im Arbeitsspeicher oder auf einem externen Server.

Schon seit TYPO3 4.3 wird das Caching Framework neben dem alten Core Cache mitgeliefert, ab Version 4.6 ist es jedoch standarmässig aktiviert.

In diesem Beitrag geht es vor allem um die Verwendung des Caching Frameworks in eigenen Extensions.

Caching Framework aktivieren

Um das Caching Framework in einer niedrigeren Version als 4.6 zu aktivieren muss im localconf.php folgende Zeile eingetragen werden:

Diese Einstellung ist nicht notwendig, wenn das Caching Framework nur für eigene Extensions benutzt wird. Ist sie jedoch nicht gesetzt, werden der Cache Manager und die Cache Factory nicht initialisiert und dies muss mit

selbst vorgenommen werden.

Garbage Collection

Um Cache Einträge, dessen Lebensdauer abgelaufen ist zu entfernen gibt es ab TYPO3 4.5 einen Garbage Collection Task. Um Speicherplatz zu sparen, sollte dieser im Scheduler Modul aktiviert werden.

Caching Tabellen

Extensions die mit TYPO3 4.3 bis 4.5 funktionieren sollen und das Datenbank Backend des Caching Framework benutzen, benötigen eigene Tabellen für Cache und Cache Tags.

Diese werden im ext_tables.sql hinzugefügt.

Cache Registrieren

Damit eigene Caches benutzt werden können, müssen sie registriert werden. Dazu wird ab TYPO3 4.6 einfach im ext_localconf.php ein Subarray von cacheConfigurations angelegt.

Nach der Registrierung können auch weitere Einstellungen für den Extension Cache vorgenommen werden. Es kann zum Beispiel ein spezifisches Cache Backend oder Frontend ausgewählt werden.

Für Versionen vor 4.6 müssen noch weitere Einstellungen vorgenommen werden.

Cache Initialisieren

Um den eigenen Cache nun schliesslich verwenden zu können, muss er initialisiert werden. In TYPO3 4.6 bekommt man mit

eine Instanz des Caches.

Für tiefere Versionen muss wie schon erwähnt zuerst

aufgerufen werden und falls die getCache Funktion einen „No Such Cache“ – Error wirft, kann die Cache Instanz wie folgt erzeugt werden:

Funktionen

Der eigene Cache kann nun benutzt werden und bietet folgende Funktionen:

  • has($identifier) – Überprüft, ob ein Eintrag mit dem übergebenen Identifier vorhanden ist.
  • get($identifier) – Gibt den gewünschten Eintrag oder NULL, falls kein Eintrag vorhanden ist, zurück.
  • getByTag($tag) – Gibt alle Einträge mit dem übergebenen Tag zurück.
  • remove($identifier) – Entfernt den gewünschten Cache Eintrag.
  • flush() – Entfernt alle Cache Einträge.
  • flushByTag($tag) – Entfernt alle Einträge mit dem übergebenen Tag.
  • set($identifier, $data, $tags = array(), $lifetime = NULL) – Schreibt einen Eintrag in den Cache. Lifetime wird in Sekunden angegeben. Bei NULL wird der default genommen, 0 heisst unendlich.
  • collectGarbage() – Startet den Garbage Collector.
  • getBackend() – Gibt das Cache Backend des aktuellen Caches zurück.
  • getIdentifier() – Gibt den Identifier dieses Caches zurück.
  • isValidEntryIdentifier($identifier) – Überprüft, ob ein Identifier Gültig ist und gibt true, beziehungsweise false zurück.
  • isValidTag($tag) – Überprüft, ob ein Tag valid ist und gibt true oder false zurück.

Codebeispiele von typo3.org.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ein Gedanke zu “TYPO3 Caching Framework in eigenen Extensions nutzen

  1. Pingback: Caching Framework: automatisch Cache leeren bei Datensatzänderung « wissen.netzhaut.de