What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
is_cached
bool is_cached(string template,
string cache_id,
string compile_id);
Restituisce TRUE
se è presente una cache valida per questo template.
Funziona soltanto se caching è
impostato a true.
Example 13.18. is_cached
<?php $smarty->caching = true; if(!$smarty->is_cached("index.tpl")) { // faccio le chiamate al database, assegno le variabili } $smarty->display("index.tpl"); ?>
Potete passare anche una cache id come secondo parametro opzionale, nel caso vogliate cache multiple per il template dato.
Potete fornire un compile id come terzo parametro opzionale. Se lo omettete, viene usato il valore della variabile persistente $compile_id.
Se non volete passare una cache id ma volete passare un compile
id dovete passare null
come cache id.
Example 13.19. is_cached con template a cache multiple
<?php $smarty->caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { // faccio le chiamate al database, assegno le variabili } $smarty->display("index.tpl", "FrontPage"); ?>
Se is_cached
restituisce true, in realtà carica
l'output in cache e lo memorizza internamente. Ogni chiamata
successiva a display() o a
fetch() restituirà questo output
memorizzato internamente, e non cercherà di ricaricare il file
della cache. Questo evita una situazione che potrebbe verificarsi
quando un secondo processo elimina la cache nell'intervallo fra
la chiamata a is_cached e quella a display, nell'esempio visto
prima. Questo significa anche che le chiamate a
clear_cache() ed altre
modifiche fatte sulle impostazioni della cache potrebbero non avere
effetto dopo che is_cached
ha restituito true.