Las características más importantes de Smarty
Primero contestémonos a esta pregunta: ¿en qué consiste el funcionamiento
de las plantillas? Contienen, en sí, la estructura completa de un documento, al cual se le pasan
los valores de ciertas variables. Es comparable al impreso para la declaración de impuestos: es uno
sólo para todas las personas físicas, pero cada uno escribe en él sus propios datos calculados.
En las plantillas de Smarty podemos crear la estructura completa de un
documento HTML, y en el lugar donde debe desplegarse el valor de la variable,
insertamos el símbolo {$var}.
Alguien podría decir que esto no es una gran cosa porque se puede
obtener ese mismo resultado colocando la función echo dentro del documento,
por ejemplo: <?echo $var;?>.
Estoy de acuerdo en esto completamente. Pero
enseguida vemos que la primera inscripción es más sencilla y entendible. He
aquí la primera ventaja de Smarty, no la última y la menos importante.
Modificadores
Los modificadores funcionan directamente sobre las variables, modificando
su apariencia o su contenido. Gracias a ellos podemos desplegar cadenas
con la ayuda de letras mayúsculas, sustituir en la cadena la palabra indicada
por la expresión que nos interesa, o acortarla a una longitud concreta.
¿Por qué no utilizar funciones de PHP en esta ocasión? Utilizando Smarty,
el programador debe preocuparse únicamente por proporcionar los datos
señalados por el diseñador, y éste se ocupará de su formato. De este modo,
puede concentrarse tranquilamente en la obtención de la información necesaria
de la base de datos, del archivo o de alguna función. Al mismo tiempo,
el diseñador recibe mejores y significativas posibilidades para el formato del
documento, de las que le ofrece HTML. Además de todo esto, no tendrá
problemas con usar los modificadores, dado que son más entendibles y secillos
de usar, con respecto a las funciones correspondientes de PHP.
Funciones
Smarty también posee un conjunto de funciones que le introducen elementos
de programación. Gracias a ellos se puede, por ejemplo, leer el contenido de
los arrays, crear un contador que estará numerando las cabeceras consecutivas
en el texto o rápidamente crear una lista de campos opcionales en una sola
línea de código (!).
Por ejemplo, escribimos:
{html_radios
name="magazine"
options=$magazines
separator="<br />"}
colocamos en la plantilla, a la cual se le transferirá el
array asociativo $magazines
en la forma de:
$magazines =
array ("1" => "PHP Solutions",
"2" => "Linux+");
creando en el documento una lista con la sintáxis siguiente:
<input type="radio" name="magazine"
value="1" />PHP Solutions<br />
<input type="radio" name="magazine"
value="2" />Linux+<br />
De paso, conviene mencionar que todo el código creado, gracias a las
funciones construídas en Smarty, se despliega en el estándar XHTML.
Así debería ser por lo menos. En el ejemplo antes mencionado se
puede ver que en el interior del tag <input/> se encuentra el atributo
name. Las especificaciones de XHTML indican claramente que ese
atributo debería ser sustituído por id. También es posible la creación de
instrucciones if, por ejemplo; con el objetivo de verificar si la variable
que se da a la plantilla no está vacía, esto es:
{if $name != ""}
¡Bienvenido!
{else}
¿Cómo te llamas?
{/if}
En el ejemplo citado se despliega el rótulo
“¡Bienvenido!”, si la variable $name no está
vacía, o “¿Cómo te llamas?” en el caso contrario.
Filtros
Si os gusta introducir muchos comentarios en los scripts y documentos
HTML, pero no queréis que alguien los lea, entonces os gustarán los filtros.
Los utilizamos principalmente para limpiar las plantillas de los elementos
indicados, antes de ser generado, a partir de ellos, cualquier otro documento.
Los filtros también pueden agregar nuevo contenido en los
archivos generados, por ejemplo; un tipo de firma “Realizado con ayuda de
Smarty”.
Archivos de configuración
Los archivos de configuración permiten definir ciertas variables globales,
a las que se accederá desde todas las plantillas. Creando una plantilla, tenemos
la posibilidad de cargar los archivos de configuración y las variables que en ellos
se encuentran, las cuales pueden ser utilizadas y modificadas de la misma manera
que una variable común.
Plugins
Smarty es un sistema abierto, fácil de extender o modificar. Los plugins permiten
crear nuestros propios modificadores, funciones y filtros. También podemos
utilizar plugins construidos y proporcionados por otros. Ya que todo está en PHP,
únicamente debemos cumplir con las especificaciones que indican los requerimientos
que se refieren a la construcción de plugins en Smarty.
Caching (uso de la caché)
Las plantillas de Smarty son inteligentes. Si una vez realizamos trabajo
y abrimos un documento concreto, éste queda almacenado y es utilizado en el
futuro. Por supuesto, si la plantilla es modificada, el sistema lo descubre por sí
solo y vuelve a generar el documento. El trabajo de Smarty puede acelerarse
utilizando la caché (ing. Caching). Esta operación consiste en almacenar el
documento en formato HTML, que será enviado durante la siguiente llamada al
navegador del cliente, sin la necesidad de procesar nuevamente los scripts,
o realizar las consultas a la base de datos, por ejemplo.