Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Internet > PHP > Smarty
-Tutoriales

Smarty


Opciones avanzadas de Smarty

Smarty también ofrece algunas opciones avanzadas, que pueden resultar interesantes durante la creación de plantillas. Cada una está desactivada por defecto y se activa estableciendo el valor en la variable adecuada del archivo Smarty.class.php a true (verdadero) ó 1. También pueden ser definidas, una sola vez, dentro del documento con la ayuda del esquema $smarty->variable=value, donde variable es el nombre de la variable, y value es su valor.

. Debugging Console (consola de depuración)

Es una consola, que tiene como fin ayudarnos eliminar errores los que podríamos encontrar en el momento de la creación de plantillas con ayuda de Smarty. Después de su ejecución, durante la visualización del documento que utiliza Smarty, debe abrirse una nueva ventana del explorador, en la que serán enumeradas todas la plantillas, además de las variables que se hayan utilizado en el documento junto con sus valores. Veamos la Figura 7, donde se presenta el contenido de la consola para el archivo sgtpep.php.

Figura 7. Ejemplo de la aplicación de la consola de depuración

La forma más sencilla de ejecutar la consola es establecer el valor adecuado en la variable $debugging – entonces ésta será desplegada siempre al abrir el documento. Por motivos obvios, es una buena solución sólo durante la etapa de creación de la página. Si deseamos tener la posibilidad de decidir si queremos utilizar dicha consola siempre, es suficiente establecer el valor de la variable $debugging_ctrl en el valor URL. En tal caso, la ventana de la consola se abrirá si añadimos la variable SMARTY_DEBUG en la dirección URL de la página a abrir, por ejemplo: http://localhost/sgtpep.php?SMARTY_DEBUG.

Para terminar, recordemos todavía una cosa: la consola se basa en la plantilla debug.tpl que se encuentra en la librería de archivos Smarty. Podemos modificarla para que el aspecto de la consola concuerde con nuestras necesidades. Por otro lado, si quisieramos pasar la plantilla de la consola a otro lugar, se debería cambiar el valor de la variable $debug_tpl.

. Modo seguro

Se puede ejecutar Smarty de modo seguro o, como lo define la documentación, con la variable $security activada. Si cambiamos su valor a true (verdadero), entonces Smarty nos pone algunas limitaciones relacionadas con su funcionamiento. No podremos utilizar el código PHP directamente en las plantillas, los archivos externos podrán ser cargados solamente desde ciertas localizaciones, además, en modificadores e instrucciones if podrán ser usarse las funciones de PHP, únicamente si han sido definidas con anterioridad. Al modo seguro se ligan dos variables más: la primera de ellas es $secure_dir, que representa el array que define el conjunto de directorios seguros; la segunda es $security_settings, que define el conjunto de funciones seguras de PHP.

. Cache

Como mencionamos al principio del artículo, Smarty compila las plantillas y las almacena en directorios separados con el fin de mejorar su funcionamiento. La segunda cosa que acelera el despliegue de las plantillas es el uso de la caché. Abramos el archivo sgtpep.php y añadamos en él la siguiente línea

$smarty->caching=true;

y luego refresquemos la página en el navegador. Smarty almacenará el contenido del documento completo dentro del directorio /cache. En la siguiente llamada, éste no será creado dinámicamente, sino que de manera automática utilizará el resultado preparado dentro del directorio /cache. ¿Durante cuánto tiempo? Una hora, ese es el lapso de tiempo, definido en la variable $cache_lifetime; dicho archivo debe ser almacenado en la caché. Desde luego, podemos cambiar su valor globalmente dentro del archivo Smarty.class.php o en nuestro documento por medio de la declaración $smarty->cache_lifetime=seconds, donde seconds es el período en segundos, durante el cual el archivo debe mantenerse almacenado.

¿Qué sucede en caso de que durante el lapso de tiempo definido por la variable, se realice un cambio en la plantilla o en cualquier otro archivo que sea utilizado por el documento? Entonces en el explorador todavía aparecerá el contenido del archivo almacenado en la caché. Para que los cambios se reflejen enseguida se puede establecer el valor true a la variable $compile_check. En ese caso, si Smarty descubre que la plantilla o cualquier otro archivo ha sido modificado, el contenido de la memoria caché se crea de nuevo.

No es la solución ideal y por eso Smarty también ofrece la posibilidad de almacenar sólo una parte de la página.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network