Caching einrichten
Als erstes muss das Caching eingeschaltet werden. Dies erreicht man, indem
$caching auf 'true' (oder 1) gesetzt wird.
Caching einschalten
caching = true;
$smarty->display('index.tpl');
?>
]]>
Wenn Caching eingeschaltet ist, wird der Funktionsaufruf display('index.tpl')
das Template normal rendern, zur selben Zeit jedoch auch eine Datei mit
dem Inhalt in das $cache_dir schreiben
(als gecachte Kopie). Beim nächsten Aufruf von display('index.tpl') wird die
gecachte Kopie verwendet.
Technische Bemerkung
Die im '$cache_dir' abgelegen Dateien haben einen ähnlichen Namen
wie das Template, mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
aufweisen, sind sie keine ausführbaren PHP-Skripte.
Editieren Sie diese Dateien NICHT!
Jede gecachte Seite hat eine Lebensdauer, die von $cache_lifetime
bestimmt wird. Normalerweise beträgt der Wert 3600 Sekunden (= 1 Stunde). Nach Ablauf dieser Lebensdauer
wird der Cache neu generiert. Sie können die Lebensdauer pro Cache bestimmen indem Sie '$caching'
auf 2 setzen. Konsultieren Sie den Abschnitt über $cache_lifetime
für weitere Informationen.
'$cache_lifetime' pro Cache einstellen
caching = 2; // Lebensdauer ist pro Cache
// Standardwert für '$cache_lifetime' auf 5 Minuten setzen
$smarty->cache_lifetime = 300;
$smarty->display('index.tpl');
// '$cache_lifetime' für 'home.tpl' auf 1 Stunde setzen
$smarty->cache_lifetime = 3600;
$smarty->display('home.tpl');
// ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren,
// wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' für 'home.tpl' bereits
// auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert.
// 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben
$smarty->cache_lifetime = 30; // 30 seconds
$smarty->display('home.tpl');
?>
]]>
Wenn $compile_check eingeschaltet ist,
werden alle in den Cache eingeflossenen Templates und Konfigurationsdateien
hinsichtlich ihrer letzten änderung überprüft.
Falls eine der Dateien seit der Erzeugung des Cache geändert wurde,
wird der Cache unverzüglich neu generiert. Dadurch ergibt sich ein
geringer Mehraufwand. Für optimale Performace sollte '$compile_check'
deshalb auf 'false' gesetzt werden.
'$compile_check' einschalten
caching = true;
$smarty->compile_check = true;
$smarty->display('index.tpl');
?>
]]>
Wenn $force_compile eingeschaltet ist,
werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht.
'$force_compile' wird normalerweise nur für die Fehlersuche verwendet.
Ein effizienterer Weg das Caching auszuschalten wäre,
$caching auf 'false' (oder 0) zu setzen.
Mit der Funktion is_cached() kann überprüft
werden, ob von einem Template eine gecachte Version vorliegt.
In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht,
können Sie diese Funktion verwenden, um den Prozess zu überspringen.
is_cached() verwenden
caching = true;
if(!$smarty->is_cached('index.tpl')) {
// kein Cache gefunden, also Variablen zuweisen
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display('index.tpl');
?>
]]>
Mit der insert Funktion können Sie
Teile einer Seite dynamisch halten. Wenn zum Beispiel ein Banner in einer gecachten Seite
nicht gecached werden soll, kann dessen Aufruf mit 'insert' dynamisch gehalten werden.
Konsultieren Sie den Abschnitt über insert
für weitere Informationen und Beispiele.
Mit der Funktion clear_all_cache() können
Sie den gesamten Template-Cache löschen. Mit clear_cache()
einzelne Templates oder Template-Gruppen.
Cache leeren
caching = true;
// alle Cache-Dateien löschen
$smarty->clear_all_cache();
// nur Cache von 'index.tpl' löschen
$smarty->clear_cache('index.tpl');
$smarty->display('index.tpl');
?>
]]>