
Un procesador de plantillas (también conocido como motor de plantillas o analizador de plantillas ) es un software diseñado para combinar plantillas con datos (definidos por un modelo de datos ) para producir documentos o programas resultantes . [ 1 ] [ 2 ] [ 3 ] El lenguaje en el que se escriben las plantillas se conoce como lenguaje de plantillas o lenguaje de plantillas . Para los fines de este artículo, un documento resultante es cualquier tipo de salida formateada, incluidos documentos , páginas web o código fuente (en la generación de código fuente ), ya sea en su totalidad o en fragmentos. Un motor de plantillas normalmente se incluye como parte de un sistema de plantillas web o marco de aplicación , y también puede usarse como preprocesador o filtro .
Características típicas
Los motores de plantillas suelen incluir características comunes a la mayoría de los lenguajes de programación de alto nivel , con especial énfasis en las características para el procesamiento de texto plano .
Dichas características incluyen:
- variables y funciones
- reemplazo de texto
- inclusión (o transclusión ) de archivos
- evaluación condicional y bucles
Motores de plantillas integrados
Si bien los procesadores de plantillas suelen ser un software independiente, utilizado como parte de un sistema o marco de trabajo, los lenguajes de plantillas simples se incluyen comúnmente en las funciones de procesamiento de cadenas de los lenguajes de programación de propósito general y en los programas de procesamiento de texto, especialmente en los editores de texto o procesadores de palabras . Estos lenguajes de plantillas suelen ser lenguajes simples de sustitución, a diferencia de las funcionalidades más sofisticadas de los procesadores de plantillas completos, pero pueden contener cierta lógica.
Algunos ejemplos sencillos son las cadenas de formato de impresión 'printf' , presentes en muchos lenguajes de programación, y los fragmentos de código , comunes en varios editores de texto y de código fuente . En los procesadores de texto, las plantillas son una función habitual, mientras que el llenado automático de las plantillas se conoce como combinación de correspondencia .
Un ejemplo ilustrativo de la naturaleza complementaria del análisis y la creación de plantillas es el scomando (sustituir) en el procesador de texto sed , que se origina a partir de la búsqueda y reemplazo en el editor de texto ed . Los comandos de sustitución tienen la forma s/regexp/replacement/, donde regexpes una expresión regular , para analizar la entrada, y replacementes una plantilla simple para la salida, ya sea texto literal o una cadena de formato que contiene los caracteres ¶ "coincidencia completa" o las secuencias de escape\1 especiales a través de \9para la n -ésima subexpresión. Por ejemplo, s/(cat|dog)s?/\1s/greemplaza todas las ocurrencias de "gato" o "perro" con "gatos" o "perros", sin duplicar una "s" existente: (cat|dog)es la primera (y única) subexpresión en la expresión regular, y \1en la cadena de formato la sustituye en la salida.
Elementos del sistema
Todos los sistemas de procesamiento de plantillas constan al menos de estos elementos primarios:
- un modelo de datos asociado ;
- una o más plantillas de origen ;
- un procesador o motor de plantillas ;
- generó resultados en forma de documentos de resultados .
Modelo de datos
Puede tratarse de una base de datos relacional , un archivo fuente como XML , un formato alternativo de base de datos de archivo plano , una hoja de cálculo o cualquier otra fuente de datos preformateados. Algunos sistemas de procesamiento de plantillas tienen limitaciones en cuanto a los tipos de datos que pueden utilizar. Otros están diseñados para ofrecer la máxima flexibilidad y permiten el uso de muchos tipos de datos diferentes.
Plantilla de origen
Las plantillas de origen se especifican tradicionalmente:
- de acuerdo con un lenguaje de programación preexistente;
- de acuerdo con un lenguaje de plantillas especialmente definido;
- según las características de una aplicación de software de alojamiento; o
- según una combinación híbrida de algunos o todos los elementos anteriores.
Motor de plantillas
El motor de plantillas es responsable de:
- Conectando con el modelo de datos;
- procesar el código especificado en las plantillas de origen; y
- dirigir la salida a una tubería , archivo de texto o flujo específico .
Además, algunos motores de plantillas permiten opciones de configuración adicionales.
Documentos de resultados
Pueden consistir en un documento completo o en un fragmento de documento.
Usos
El procesamiento de plantillas se utiliza en diversos contextos con distintos fines. El propósito específico suele depender de la aplicación de software o del motor de plantillas que se utilice. Sin embargo, la flexibilidad de los sistemas de procesamiento de plantillas a menudo permite usos no convencionales para fines que no fueron previstos originalmente por los diseñadores.
Motor de plantillas
Un motor de plantillas es un tipo específico de módulo de procesamiento de plantillas que presenta todas las características principales de un lenguaje de programación moderno . El término motor de plantillas surgió como una descripción generalizada de los lenguajes de programación cuyo propósito principal o exclusivo era procesar plantillas y datos para generar texto. El uso de este término se aplica principalmente al desarrollo web mediante un sistema de plantillas web , y también se aplica a otros contextos. [ 4 ]
Generación de documentos
Los marcos de generación de documentos suelen utilizar el procesamiento de plantillas como modelo central para generar documentos.
Generación de código fuente
Las herramientas de generación de código fuente permiten generar código fuente (como documentos resultantes) a partir de modelos de datos abstractos (por ejemplo, UML, datos relacionales, almacenes de datos empresariales específicos del dominio) para dominios de aplicación particulares, organizaciones particulares o para simplificar el proceso de producción para programadores informáticos .
Funcionalidad del software
Un motor de plantillas web procesa plantillas web y datos de origen (normalmente de una base de datos relacional ) para generar una o más páginas web o fragmentos de página. Generalmente se incluye como parte de un sistema de plantillas web o un marco de aplicación . Actualmente, el software de procesamiento de plantillas se utiliza con mayor frecuencia en el desarrollo web .
Comparación
XSLT es un modelo de procesamiento de plantillas diseñado por el W3C . Está diseñado principalmente para transformaciones de datos XML (en documentos web u otros formatos de salida).
Lenguajes de programación como Perl , Python , PHP , Ruby , C# , Java y Go admiten el procesamiento de plantillas de forma nativa o mediante bibliotecas y módulos adicionales. JavaServer Pages , [ 5 ] Active Server Pages , [ 6 ] Genshi (para Python) y eRuby son ejemplos de motores de plantillas diseñados específicamente para el desarrollo de aplicaciones web.
Además, el procesamiento de plantillas a veces se incluye como una subfunción de paquetes de software como editores de texto , IDE y sistemas de gestión de bases de datos relacionales .
Ventajas de usar motores de plantillas
- fomenta la organización del código fuente en capas operativamente distintas (véase, por ejemplo, MVC ).
- Mejora la productividad al reducir la reproducción innecesaria del esfuerzo.
- Mejora el trabajo en equipo al permitir la separación del trabajo en función de las habilidades (por ejemplo, artísticas frente a técnicas).
Véase también
Referencias
- ↑ Niemeyer, Patrick (2002). Aprendiendo Java . Sebastopol: O'Reilly. ISBN 0-596-00285-8.
- ↑ Manolescu, Dragos (2006). Pattern Languages of Program Design 5. Reading: Addison-Wesley Professional. ISBN 0-321-32194-4.
- ↑ Fowler, Martin (2003). Patrones de arquitectura de aplicaciones empresariales . Boston: Addison-Wesley. ISBN 0-321-12742-0.
- ↑ (véase, por ejemplo, Velocity, TemplateToolkit, Freemarker).
- ↑ JavaServer Pages es una tecnología lanzada por Sun para su uso con el lenguaje de programación Java. "Tecnología JavaServer Pages" . 10 de octubre de 2006. Consultado el 10 de octubre de 2006 .
- ↑ ASP 1.0 se lanzó originalmente para su uso con Microsoft VBScript y JScript. Era una extensión de Microsoft IIS.
Enlaces externos
- Imponer una estricta separación entre modelo y vista en los motores de plantillas
- Lenguajes de scripting
- Motores de plantillas