Caching Framework: Frontend

Mit Frontends kann PRO Cache angegeben werden WIE die Daten gespeichert werden sollen. NICHT WO! Das Caching Framework bietet derzeit 3 Frontends an:

\TYPO3\CMS\Core\Cache\Frontend\VariableFrontend

Der Allrounder unter den Frontends und somit der Standard, der von TYPO3 verwendet wird, wenn kein Frontend in der Konfiguration angegeben wurde.

Mit diesem Frontend könnt Ihr alle Datentypen verwalten, die serialisierbar sind (PHP:serialize). Dazu zählen Strings, Integer, Boolsche Werte, Arrays und Objekte. Nur im Falle des TransientMemoryBackends werden die zu cachenden Daten nicht serialisiert. Bis TYPO3 7.6 gibt es die Möglichkeit mit Hilfe des zusätzlichen PHP Modules igbinary das Serialisieren zu beschleunigen. Da dieses Modul jedoch kein Standard auf Hostingpaketen ist und auch die Entwicklung sehr hinterher hinkt, wurde igbinary mit TYPO3 8.0 aus dem Core entfernt: review.typo3.org

\TYPO3\CMS\Core\Cache\Frontend\StringFrontend

Mit diesem Frontend könnt Ihr nur Strings abspeichern. Andere Datentypen werden mit folgender Fehlermeldung quittiert:

Given data is of type "array", but a string is expected for string cache.

\TYPO3\CMS\Core\Cache\Frontend\PhpFrontend

Dieses Frontend ist eine Erweiterung des StringFrontends und akzeptiert somit nur den Datentyp String. Alles andere wird mit dieser Fehlermeldung quittiert:

The given source code is not a valid string.

Das Besondere an diesem Frontend ist: Ihr könnt PHP Quelltext (ohne "<?php") an den Cache schicken. Dieses Frontend klappt nur in Verbindung mit den Datei basierten Backends: SimpleFileBackend und FileBackend. Das liegt daran, weil PHP:require_once einen Dateipfad erfordert.

Anstatt mit get() den Quellcode wieder aus dem Cache abzuholen, solltet Ihr die Methode requireOnce() bevorzugen. Diese prüft, ob die Datei bzw. der Cacheeintrag existiert und läd den Inhalt direkt mittels PHP:require_once.