$plantilla = new Smarty;
$plantilla->caching = 1; //Activa la cache
$plantilla->display('planilla.tpl'); //El fichero planilla.tpl debe contener la planilla a devolver
También es posible llamar a
$html = $plantilla->fetch('planilla.tpl');
Para no volcar al navegador el html y tenerlo almacenado en la variable $html.
Antes de llamar a display o a fetch podemos modificar el comportamiento del sistema de caché de smarty
Por ejemplo:
$plantilla->cache_dir = '/tmp/smarty/';
Grabará las planillas cacheadas en este directorio (smarty cachea el contenido en disco por defecto)
$plantilla->cache_lifetime = 300;
El contenido permanece en cache 5 minutos (300 segundos) antes de ser reemplazado. El valor por defecto es una hora.
$plantilla->compile_check = true;
Verifica si la plantilla ha sido actualizada desde la última vez que se regeneró la caché. Introduce una pequeña sobrecarga al tener que averiguar y comparar la fecha de modificación de la plantilla.
$plantilla->force_compile = true;
Siempre regenerará la cache
$plantilla->is_cached('plantilla.tpl');
Detecta si una plantilla está en el cache o no.
$plantilla->assign('variable',$var);
La plantilla puede ahora leer la variable $var, con el nombre {variable} generando así contenido realmente dinámico
$plantilla->clear_cache('plantilla.tpl');
Elimina la cache para esta plantilla
$plantilla->clear_all_cache();
Elimina todas las caches (en el directorio de cache)
Es posible eliminar el cache por grupos de plantillas. Estos grupos de plantillas se pueden definir de la siguiente manera:
$plantilla->display('index.tpl','sports|basketball');
Y entonces borrar la caché del grupo sports|basketball así:
$smarty->clear_cache(null,'sports|basketball');
o borrar sólo el index.tpl del grupo sports|basketball así:
$smarty->clear_cache('index.tpl','sports|basketball');
Funcionando como una especie de espacio de nombres
Es posible introducir contenido no cacheable dentro de una plantilla cacheada utilizando {insert}.
{insert} funciona de una manera idéntica a {include} con la particularidad de su comportamiento ante el cache.
Veamos como funciona con un ejemplo
{insert name="obtenerPublicidad" localizacion=#banner_location_id# id=#site_id#}
Lo que hará a continuación smarty será llamar a la funcion insert_obtenerPublicidad, que debes tener definida en tu código, pasandole como argumento un array asociativo.
Suponiendo que #banner_location_id# valga 5 y #site_id# valga 8. Se ejecutará:
insert_obtenerPublicidad(array('localizacion'= > '5' , 'id'= > '8'));
y lo que devuelva esta función será añadido en la plantilla.
Para saber más sobre smarty y su sistema de cache visita su página oficial.
Otros métodos para acelerar tu servidor web a otros niveles son memcache, x-cache o apc.





0 Referencias