Smarty
| Smarty | ||
|---|---|---|
| Información general | ||
| Tipo de programa | Motor de plantillas | |
| Desarrollador | Monte Ohrt, Messju Mohr | |
| Lanzamiento inicial | 2001 | |
| Licencia | Licencia Pública General Reducida de GNU | |
| Información técnica | ||
| Programado en | PHP | |
| Versiones | ||
| Última versión estable | 4.3.2 (info) (19 de julio de 2023 (2 años, 10 meses y 19 días)) | |
| Archivos legibles | ||
| Smarty template file | ||
| Archivos editables | ||
| Smarty template file | ||
| Enlaces | ||
Smarty es un motor de plantillas para PHP, es decir, 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 Pública General Reducida de GNU.
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 de 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.
Características
- Expresiones regulares
- Bucles foreach, while
- Sentencias condicionales if, elseif, else
- Modificadores de variables (por ejemplo: {$variable|nl2br})
- Funciones creadas por el usuario
- Evaluación de expresiones matemáticas en la plantilla
Críticas
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 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), .NET (C#) o Django (Python).
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("direccion", "C/ Alpes, 992");
// Mostrar la plantilla
$smarty->display("index.html");
- index.html
<!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>
Referencias
Enlaces externos
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.