Name
is_cached (gecachte Version existiert)
bool is_cached(string template,
string cache_id,
string compile_id);
Gibt 'true' zurück, wenn ein gültiger Cache für das angegebene Template existiert. Dies funktioniert nur, wenn caching eingeschaltet ist.
Example 13.18. is_cached
<?php $smarty->caching = true; if(!$smarty->is_cached("index.tpl")) { // Datenbank-Abfragen, Variablen zuweisen... } $smarty->display("index.tpl"); ?>
Als optionalen zweiten Parameter können Sie die 'cache_id' übergeben, falls Sie mehrere Caches für ein Template verwenden.
Example 13.19. 'is_cached' bei mehreren Template-Caches
<?php $smarty->caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { // Datenbank Abfragen, Variablen zuweisen... } $smarty->display("index.tpl", "FrontPage"); ?>
Technische Bemerkung
Wenn is_cached
true zurück gibt, wird die Ausgabe geladen. Alle weiteren Aufrufe von display() oder fetch() werden aus diesem Cache bedient. Dies verhindert eine Race Condition, die auftauchen könnte, wenn ein anderes Script das besagte Template aus dem Cache löscht. Das bedeutet natürlich auch, dass clear_cache() und andere Cache spezifische Einstellungen keine Auswirkungen haben, nachdem is_cached
true zurückgegeben hat.