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> Este retorna true si hay un cache valido para ese template. Esto solamente funciona si <link linkend="variable.caching"> caching</link> está asignado a true. </para> <example> <title>is_cached caching = true; if(!$smarty->is_cached("index.tpl")) { // do database calls, assign vars here } $smarty->display("index.tpl"); ?> ]]> Usted también puede pasar un identificador de cache como un segundo parámetro opcional en el caso que usted quiera multiples caches para el template dado. Usted puede proporcionar el identidicador como un tercer parametro opcional. Si usted omite ese parametro la persistencia del $compile_id es usada. Si usted no quiere pasar el identificador de cache solamente quiere pasar el compile id debe pasar null como el identidficador de cache. is_cached con templates con multiple-cache caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { // do database calls, assign vars here } $smarty->display("index.tpl", "FrontPage"); ?> ]]> Nota técnica Si is_cached retorna true el carga actualmente la salida del cache y lo guarda internamente. cualquier subsecuente llama a display() o fetch() y retorna este internamente guardando la salida y no intenta volver a cargar el archivo del cache. Esto previene una condicion de la carrera que puede ocurrir cuando un segundo proceso limpie el cache entre las llamadas a is_cached mostradas en el ejemplo de arriba. Esto significa tambien llamar al clear_cache() y otros cambios en el cache-settings que no tiene efecto despues que is_cached retorna true.