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.

Sin respuestas to "Caché en SMARTY en los scripts"


    ¿Algo que comentar?