Smarty

Smarty
Información sobre la plantilla
[[Archivo:Archivo:File.jpg|260px]]
DesarrolladorMonte Ohrt, Messju Mohr [www.smarty.net]
Última versión estable3.0.7
GéneroMotor de plantillas
Sistemas Operativos compatiblesMultiplataforma
IdiomaMultilingüe
LicenciaLicencia Pública General Reducida de GNU

Smarty es un motor de plantillas para PHP, facilitando la separación de la capa de presentación (HTML/CSS) de la lógica de la aplicación (PHP), uno de los objetivos fundamentales del patrón MVC.

Smarty es...

Smarty es un motor de plantillas y funciona como la capa vista de un modelo MVC. Smarty se puede complementar con los frameworks disponibles para PHP. No garantiza un buen diseño gráfico ni de aplicación, o una adecuada separación de la presentación.

En los procesos de desarrollo donde el rol de diseñador y programador no está cubierto por la misma persona, se hace muy complejo para el primero entender el código HTML relativo al diseño cuando este se encuentra ligado y determinado por el código PHP que se encarga de la lógica de la aplicación. Es aquí donde Smarty juega su papel, ya que al usarlo el diseñador trabaja simplemente con un código HTML y algunas etiquetas que representan el contenido.

Smarty no es...

  • Un framework
  • Un MVC
  • Una alternativa a Zend, Code Igniter, o CakePHP

Filosofía

El diseño de Smarty está dirigido por estos objetivos:

   * Limpia separación entre la presentación y lógica de la aplicación.
   * Complementar PHP, no reemplazarlo.
   * Rápido desarrollo e implantación por parte de desarrolladores y diseñadores.
   * Rápido y sencillo de mantener.
   * Sintaxis fácil de entender y sin conocimientos de PHP.
   * Libre, código abierto

Ejemplo

index.php

require_once("smarty/Smarty.class.php");
 
// Instanciar la clase de Smarty
$smarty = new Smarty();
 
// Configurar Smarty
$smarty->template_dir = "./templates/";
$smarty->compile_dir = "./templates_c/";
$smarty->config_dir = "./configs/";
$smarty->cache_dir = "./cache/";
 
// Establecer variables que se usarán en la plantilla
$smarty->assign("nombre", "José Manuel Pardo Pérez");
$smarty->assign("Dirección", "C/ Alpes, 992");
 
// Mostrar la plantilla
$smarty->display("index.tpl");

index.tpl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html lang="es">
   <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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html lang="es">
   <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: C/ Alpes, 992
     </p>
   </body>
 </html>

Sitios que utilizan Smarty

Existe una gran cantidad de sitios utilizando Smarty como motor de plantillas, una lista mas completa se puede encontrar en [1]. Entre dichos sitios se pueden mencionar:

  • XOOPS CMS [2]
  • CMS Made Simple [3]
  • Tiki CMS/Groupware [4]

Véase también

PHP

Fuentes