Um der TYPO3-Affinität meines Schaffens mal wieder ein wenig Ausdruck zu verleihen – und um für mich und die anderen TYPO3-Begeisterten ein Merkblatt bei der Hand zu haben:
Allgemeines zum Caching
Da TYPO3 ein ziemlich mächtiges und komplexes CMS ist, sind vom PHP-Interpreter bei jedem Seitenaufruf tausende von Quellcodezeilen zu verarbeiten und dutzende Datenbankabfragen vonnöten. Um diese für jeden Besucher gleichen Prozesse zu vermeiden, wurde in TYPO3 ein ausgeklügeltes Caching-Modul integriert. Somit wird der Webserver entlastet und der Nutzer bekommt die angeforderte Seite obendrein merklich schneller ausgeliefert.
Aktivieren des Cachings
Das Cachen der Inhaltsseiten, Thumbnails und Konfigurationsdateien ist standardmäßig aktiviert.
Benutzer oder Benutzergruppen sollen gesamten Seitencache löschen können
Sollen auch normale Redakteure genau wie der Admin den kompletten Seitencache leeren dürfen (und nicht nur seitenweise), so ist dem TSconfig des Benutzers oder der Benutzergruppe folgendes hinzuzufügen:
options.clearCache.pages = 1
Es erscheint dann im Backend oben rechts auch der gelbe Blitz mit einem Kontextmenü, über welches das Löschen vorgenommen werden kann.
Deaktivieren des Cachings
Für Entwicklungszwecke – vor allem an Typoscripten und Templates – ist es vorteilhaft, wenn man das Zwischenspeichern der Seite deaktivieren kann und somit nach jeder Änderungsaktion nicht erst mühsam den Cache leeren muss. Dafür gibt es mehrere Möglichkeiten:
- Globales Deaktivieren
Hierfür genügt folgende Zeile im Setup des Seiten-Templates:config.no_cache = 1
- Deaktivieren nur für einen bestimmten Nutzer – meistens der Admin. Diese Option habe ich sehr liebgewonnen, da sie für einen eingeloggten Admin das Entwickeln erheblich vereinfacht.
Hierfür in TSconfig des Benutzers eintragen:admPanel.override.tsdebug.forceTemplateParsing = 1
- Deaktivieren oder Festlegen der Cache-Gültigkeit nur für eine bestimmte Seite:
Setzen des “Cache verfällt”-Feldes in den Seiteneigenschaften der betreffenden Seite im Backend
Automatisches Löschen des Caches für Seiten, auf denen Inhalte von anderen Seiten angezeigt werden
Häufigstes Szenario für diese Anforderung wird der Einsatz der News-Extension tt_news sein. Für die News-Datensätze legt man idealerweise einen eigenen Sys-Ordner an, aus welchem sich dann verschiedene tt_news-Plugin-Elemente ihre Inhalte holen – z.B. die Teaser auf der Startseite, die News-Übersicht, die Detailseiten der News, Archive etc.
Damit dann bei Änderung oder Hinzufügen von Inhalten der Cache der gewünschten Anzeige-Seiten [UID1], [UID2], usw. geleert wird, fügt man folgenden Code in das TSConfig der entsprechenden Quellseite ein:
TCEMAIN.clearCacheCmd = [UID1],[UID2],...
Globales Festlegen der Gültigkeit des Caches sowie regelmäßiges Löschen
Will man bei häufig geänderten Seiten die Gültigkeit des Caches – also nach welcher Zeit die Seite nicht mehr aus dem Cache geholt, sondern neu generiert wird – festlegen, verwendet man folgenden Code im Setup des Seiten-Templates (wobei die Angabe hier in Sekunden erfolgt):
config.cache_period = 86400
Möchte man TYPO3 zusätzlich anweisen, den gesamten Cache jede Nacht zu leeren, bedient man sich folgendes Codes:
config.cache_clearAtMidnight = 1


Hallo Stefan,
nette Zusammenfassung! Was mir allerdings noch fehlt, ist ein Hinweis auf das neue Caching Framework der neueren TYPO3-Versionen. Ist für den Redakteur vielleicht nicht so wichtig, sollte jedoch trotzdem erwähnt werden, finde ich :-)
Grüße,
Max.
hi max.
danke ;-)
ja das caching-framework wollte ich mir in einem separaten artikel mal vornehmen. hatte auch überlegt, ob ich das hier ankündigen soll – jedoch wollte ich keine hastigen erwartungen wecken ..
by the way: deine seite find ich wirklich sehr aussagekräftig und inspirierend