Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Prólogo

Esta es indudablemente una de las preguntas que mas se hacen en las listas de correo de PHP: Como hacer mis scripts de PHP independientes del diseño?. Mientras PHP se encarga de como "incrustar scripts en lenguaje HTML", después de escribir los proyectos que mezclan PHP y HTML libremente, esto trae como consecuencia la idea de separar la forma y el contenido, muy buena idea[TM]. En adición, en muchas compañias la interpretación de esquema es diseñador y programador por separado. Por consiguiente, la busqueda trae como solución una plantilla(template).

Por ejemplo en nuestra compañia, el desarrollo de una aplicación es como sigue: Después de tener la documentación necesaria, el diseñador de web diseña el prototipo de la interfaz y la entrega al programador. El programador implementa las reglas de negocio en PHP y usa el prototipo para crear el "esqueleto" de la plantilla. El proyeto esta en manos de la persona responsable del HTML designer/web page que produzca la plantilla para su gloria completa. El proyecto debe ir y regresar entre programación/HTML varias veces. De esa manera, es importante para tener un buen suporte de templates porque los programadores no quieren hacer nada con HTML ni quieren diseño HTML al rededor del codigo PHP. Los diseñadores precisan de soporte para archivos de configuración, bloques dinámicos y otras interfaces usadas, mas ellos no quieren ocuparse con las compejidades del lenguaje de programación PHP.

Buscando, actualmente existen muchas soluciones de templates disponibles para PHP, la mayor parte de ellos les provee de una forma rudimentaria de sustitución de variables dentro del template y hace una forma limitada de la funcionalidad dinámica del bloque. Pero nuestras necesidades requieren mas que eso. Porque no queremos programadores que no quieran tener trato con HTML del todo, pero esto puede ser casi inevitable. Por ejemplo, si un diseñador quiere alternar colores de fondo sobre bloques dinámicos, esto tuvo que trabajarse con el programador anticipadamente. Nosotros necesitamos también que los diseñadores esten capacitados para usar archivos de configuración, y colocar variables de ellos dentro de los templates. La lista continua.

Nosotros empezamos escribiendo por fuera una especulación para un motor de plantillas(templates) atrasado de 1999. Después de terminar la especulación, comenzamos a trabajar un motor de plantillas escrito en C que esperanzadoramente fue aceptado para ser incorporado con PHP. No solamente nos encontramos con algunas complicadas barreras tecnicas, si no también hubo acalorados debates sobre lo que exactamente debia de hacer o no un motor de plantillas. De esta experiencia, decidimos que un motor de platillas devería ser escrito en PHP como una clase, para que cualquiera lo use de la misma forma como ellos ven. Así nosotros escribimos un motor que es SmartTemplate ™ nunca volvio a existir(nota: esa clase nunca fue enviada al público). Esta era una clase que ralizaba casi todo lo que nosotros necesitabamos: sustitución de variables regulares, soporte incluso de otras plantillas, integración con archivos de configuración, incrustación de código PHP, funcionalidades 'if' limitada y muchos mas bloques dinámicos robustos que podrían ser anidados muchas veces. Todo esto con expresiones regulares y el código producido seria mejor, como diriamos nosotros, impenetrable. Eso era también notoriamente lento en grandes aplicaciones por todas las interpretaciones y expresiones regulares trabajando en cada requisición. El mayor problema del punto de vista de un programador era todo el trabajo necesario en el procesamiento del scripts PHP y procesamiento de bloques dinámicos de la plantilla. Como hacemos eso facilmente?

Entonces se origino la visión de que finalmente se convirtiera en Smarty. Nosotros sabemos que rápido es el código PHP sin las cabeceras y la interpretación de plantillas(templates). También sabemos que meticuloso y arrogante es el lenguaje PHP su poder debe ser aceptable para un diseñador, y este podría ser enmascarado con una simples sintaxis de plantillas(templates). Entonces que pasara si nosotros convinamos las dos fuerzas? De esta manera, nacio Smarty...

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors