Template Toolkit es una biblioteca de plantillas de Perl potente y ligera que separa el código, los datos y la presentación.
"Ligero" en este caso significa que la interacción del usuario, el trabajo con la base de datos , la llamada de plantillas para su procesamiento y visualización se realiza a través de scripts de perl que contienen toda la lógica de trabajo (ver lógica de negocios ), y las propias plantillas son las principales responsables del diseño/ actuación.
Esto contrasta con los sistemas de desarrollo "completamente desarrollados" (marcos), en los que Perl está muy estrechamente integrado con HTML y proporciona funcionalidad adicional para trabajar con páginas web, como sesiones .
Sin embargo, debe tenerse en cuenta que, en términos de velocidad, según los resultados de las pruebas , la biblioteca no es "liviana" y pierde notablemente frente a otros motores de plantillas comunes .
Template Toolkit utiliza su propio lenguaje, que tiene una sintaxis rica pero fácil de aprender.
Un ejemplo de plantilla simple:
<html> <head><title>[% título %]</title></head> <cuerpo> Lista de salida: <ul> [% FOREACH i = elementos %] <li>[% y %]</li> [%FINAL%] </ul> </cuerpo> </html>Y el script que lo llama:
# !/usr/bin/perl usar Plantilla ; my $tt2 = nueva Plantilla ({ INCLUDE_PATH => '/ruta/a/plantillas' #Ruta al directorio de plantillas }); my $vars = { title => 'Título de página' , items => [ 'Uno' , 'Dos' , 'Tres' ] }; imprimir "Tipo de contenido: texto/html\n\n" ; $tt2 -> proceso ( "pagina1.htm" , $vars );Los separadores de bloque de código predeterminados son [% y %] . Pero puede usar cualquier otra secuencia de caracteres, como <% %> , <? ?> y así sucesivamente. Además, puede cambiar la secuencia en cualquier momento dentro de la plantilla.
A continuación se muestra una lista de algunas de las características del kit de herramientas de plantillas:
hash.key : acceso a la matriz de claves
hash.1 : elemento de matriz con índice 1
object.method
:
llama a un método de objeto de manera
La lista completa de funciones de Template Toolkit es muy larga. Se pueden encontrar más detalles en la documentación, que se puede encontrar en los enlaces en la parte inferior de la página.
Debido a que en Perl hay variables de diferentes tipos, y en el Template Toolkit todas se llaman de la misma forma, surgen ambigüedades.
Hay características de trabajar con objetos hash y objetos de matriz:
Cuando intenta pasar a través de un objeto de matriz a través de FOREACH, resulta que solo habrá un elemento en la lista: el objeto en sí.
Y al acceder al elemento arrayobj.$index , donde index es el índice del elemento requerido, Template Toolkit intentará llamar a un método con ese nombre. Y los métodos con nombres 0, 7, 12, etc., en general, no existen en los lenguajes de programación.
Para resolver estos problemas, debe agregar el método as_list () al código de clase; esto es lo que llama Template Tookit cuando usa FOREACH.
sub como_lista { [ @ { $_ [ 0 ]}] }El significado de este código es que se toma el objeto en sí, se convierte en una matriz regular y se convierte inmediatamente en una referencia de matriz, lo que se necesita para FOREACH.
¿Cómo ayuda as_list() a seleccionar elementos específicos de un objeto?
aref = aref_objeto . como_lista (); referencia .0 ; referencia .1 ;Los problemas son causados por la presencia de la función AUTOLOAD en la clase:
El segundo problema se puede resolver así:
sub AUTOLOAD { my ( $sub_name ) = $AUTOLOAD =~ /([^:]+)$/ ; #Encuentre el nombre del método solicitado si ( existe $_ [ 0 ]{ $sub_nombre }) { #Si el objeto tiene una clave llamada $sub_nombre, devuelva $_ [ 0 ]{ $sub_nombre } #luego devuélvalo } }Hay una matriz aref y una variable ix. Queremos generar el elemento de matriz en el índice especificado en ix.
Esto estaría mal:
aref _ ixEn este caso, se intentará llamar al método ix.
Y esto es correcto:
aref _ $ixEl signo de dólar $ se usa para sustituir el valor de una variable en una expresión.
Si bien Template Tookit se considera una biblioteca de plantillas "ligera", la sintaxis avanzada y un gran conjunto de características adicionales indican un sesgo hacia los "pesos pesados".
Aunque la plantilla se llama para su procesamiento desde un script de perl, es posible incrustar comandos de Template Toolkit directamente en el código de las páginas HTML comunes que los usuarios solicitan directamente. Para hacer esto, necesita instalar el módulo Apache::Template y hacer una pequeña configuración del servidor Apache.
Creador de la biblioteca Andy Wardley . Puede descargar la última versión de la biblioteca (Template-Toolkit-N.NN.tar.gz) desde CPAN . Vea los enlaces a los recursos a continuación.
Los desarrolladores que utilizan Windows pueden descargar un archivo todo en uno que contiene Apache 2, Perl 5.x, mod perl 1.99 y muchas bibliotecas útiles que no se incluyen en la distribución estándar de Perl, como Template Toolkit 2 y Apache: plantilla. El archivo está aquí: ftp://theoryx5.uwinnipeg.ca/pub/CPAN (enlace no disponible) .