Smarty
| ||||||||||||||||
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.
Sumario
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:

