Caché en SMARTY en los scripts
Publicado en 12 febrero, 2019
Para que un script devuelva la plantilla cacheada hay que habilitar el caching inmediatamente después de inicializar la variable Smarty. Recomiendo usar algunas variables para evitar errores.
Vamos a usar como ejemplo el index:
include_once 'smarty/Smarty.class.php'; $t = new Smarty(); $t->caching = true; $smarty_tpl = $_SERVER['DOCUMENT_ROOT'].'/'.$lang.'/tpl/default/index.tpl'; # no uso $tpl por si coincide con otra variable $cache_id = $lang . '_index';
El tiempo de cache por defecto es de 3600 segundos (1 hora), se puede cambiar así:
$t->cache_lifetime = 3600;
Toda la lógica que queremos evitar cuando esté cacheado hay que meterlo dentro del condicional isCached
if (!$t->isCached($smarty_tpl, $cache_id) {
$results = get_results();
$t->assign('results', $results);
}
Finalmente hacemos el display
$t->display($smarty_tpl, $cache_id);
- En caso de usar una variable distinta a $t, hay que sustituir por la correcta.

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.