is_cached <methodsynopsis> <type>bool</type><methodname>is_cached</methodname> <methodparam><type>string</type><parameter>template</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> </methodsynopsis> <para> Restituisce &true; se č presente una cache valida per questo template. Funziona soltanto se <link linkend="variable.caching">caching</link> č impostato a true. </para> <example> <title>is_cached 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. is_cached con template a cache multiple caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { // faccio le chiamate al database, assegno le variabili } $smarty->display("index.tpl", "FrontPage"); ?> ]]> Nota tecnica 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.