PHPTAL: un lenguaje de plantillas para PHP basado en ZPT
Estos días estuve trabajando bastante en Python, Zope y Plone, un conjunto de tecnologías que me parecen atractivas y muy versátiles, y en el transcurso del aprendizaje natural encontré las Zope Page Templates (ZPT), que es un lenguaje para creación de plantillas diferente a los normales, pues en vez de crear tags HTML nuevas, añade atributos a las etiquetas existentes.
Según el Zope Book, “el objetivo de las Page Templates es permitir a los diseñadores y programadores trabajar en conjunto fácilmente. Un diseñador puede utilizar un editor HTML visual (el clásico WYSIWYG como Dreamweaver, NVU o Front*cofff*Page) para crear una plantilla, que luego el programador puede editar para hacerla parte de una aplicación. Si es necesario, el diseñador puede volver a cargar la plantilla en su editor visual y hacer cambios en la estructura y apariencia. Tomando ciertos recaudos, el trabajo de edición se puede realizar sin dificultades y no interfiere con la aplicación.
“Las Page Templates apuntan a lograr este objetivo adoptando tres principios:
- Permitir la creación y modificación de las páginas con herramientas visuales.
- Lo que ve es muy similar a lo que obtiene (WYSIVSTWYG).
- Mantiene el código fuera de las plantillas, salvo la lógica estructural.
Una Page Template es como un modelo de la página que generará. En particular *es HTML válido* (e incluso *XHTML válido*!)
Redondeando, quiere decir que nuestro editor visual no hará desastres con la plantilla, como suele ocurrir con otros lenguajes de plantillas, ya que no hay etiquetas extrañas sino atributos en nuevos las etiquetas actuales (y sólo dos namespaces opcionales).
Como me pareció muy cómodo me puse a buscar si en PHP había algo similar, y efectivamente unos buenos muchachos han portado esta idea creando el PHP Template Attribute Language (PHPTAL) que es una implementación de ZPT para PHP . En resúmen, es una librería de generación de plantillas XML/XHTML para PHP.
PHPTAL actualmente va por la versión 1.1.8 y se distribuye como standalone o empaquetado para PEAR. En la introducción hay un ejemplo muy ilustrativo de como funciona la herramienta.
Algunas ventajas:
- impone mayor separación entre lógica y presentación,
- advierte si se olvidó de cerrar alguna etiqueta HTML o si la página está malformada,
- ya no es necesario utilizar htmlentities,
- las plantillas quedan limpias y legibles,
- permite insertar texto de ejemplo para previsualizar la plantilla sin necesidad de ejecutarla con PHP,
- se integra bastante bien con editores visuales,
- permite la abstracción de datos con un sistema similar a xpath.
Algunas desventajas:
- es una dependencia de la aplicación,
- hay que aprenderse los atributos,
- hay que producir XHTML límpio (aunque esto no sería una desventaja).
Para mayor información les dejo el enlace a la guía de referencia de PHPTAL.