Smarty

De Wikipedia, la enciclopedia libre

Smarty
Desarrollador Monte Ohrt, Messju Mohr
Última versión estable 2.6.20
(15 de agosto de 2008)
S.O. Multiplataforma
Licencia LGPL
En español
Sitio web smarty.net

Smarty es un motor de plantillas para PHP. Smarty separa el código PHP, como lógica de negocios, del código HTML, como lógica de presentación, y genera contenidos web mediante la colocación de etiquetas Smarty en un documento. Se encuentra bajo la licencia LGPL por lo que puede ser usado libremente.

Es común que en grandes proyectos el rol de diseñador gráfico y el de programador sean cubiertos por personas distintas, sin embargo la programación en PHP tiene la tendencia a combinar estas dos labores en una persona y dentro del mismo código lo que trae consigo grandes dificultades a la hora de cambiar alguna parte del diseño de la página, pues se tiene que escarbar entre los scripts para modificar la presentación del contenido, Smarty tiene como objetivo solucionar este problema.

Smarty permite programar plantillas con un gran número de funcionalidades, como:

  • expresiones regulares
  • bucles foreach, while
  • if, elseif, else
  • modificadores de variables - Por ejemplo {$variable|nl2br}
  • funciones creadas por el usuario
  • evaluación de expresiones matemáticas en la plantilla

[editar] Ejemplo de Smarty

index.php

include('Smarty.class.php');
// Crea Objeto
$smarty = new Smarty;
// Asigna algo de contenido, este vendria comunmente de
// una base de datos u otra fuente,pero usaremos valores
// estáticos para este ejemplo.
$smarty->assign('nombre', 'José Manuel Pardo Pérez');
$smarty->assign('direccion', 'Alpes #992');
// Lo muestra
$smarty->display('index.tpl');

index.tpl

 <html>
 <head>
 <title>Información del Usuario</title>
 </head>
 <body>
 <p>Información del Usuario:</p>
 <p>Nombre: {$nombre}<br />
    Dirección: {$direccion}</p>
 </body>
 </html>

Salida HTML generada

 <html>
 <head>
 <title>Información del Usuario</title>
 </head>
 <body>
 <p>Información del Usuario</p>
 <p>Nombre: José Manuel Pardo Pérez<br />
    Dirección: Alpes #992</p>
 </body>
 </html>

[editar] Más información

Existen más sistemas de plantillas para PHP pero éste parece ser el más avanzado y con más frecuencia de desarrollo. También hay detractores de estas técnicas que alegan que las mismas hacen en cierta medida un grado más complejo el desarrollo web, por la necesidad de aprender un (pseudo) lenguaje más.

Los detractores de esta idea se basan en el hecho de que, precisamente, el lenguaje PHP nació como un lenguaje rápido para hacer desarrollos web a pequeña escala. A medida van surgiendo sistemas de separación en capas que intentan disciplinar un poco las metodologías de programación envueltas en el desarrollo con el PHP, pero que no hacen otra cosa que acercarse más y más a otras herramientas ya existentes en otros entornos de desarrollo más complejos y pensados desde sus orígenes para proyectos más grandes, como pueden ser J2EE (Java) o .NET (C#).

[editar] Enlaces externos

Herramientas personales
Crear un libro