Template Toolkit je výkonná, lehká knihovna šablon Perl , která odděluje kód, data a prezentaci.
„Lightweight“ v tomto případě znamená, že interakce uživatele, práce s databází , volání šablon pro zpracování a zobrazení se provádí pomocí perlových skriptů obsahujících veškerou logiku práce (viz obchodní logika ), a samotné šablony jsou zodpovědné především za design / výkon.
To je na rozdíl od "plnohodnotných" vývojových systémů (frameworků), ve kterých je Perl velmi těsně integrován s HTML a poskytuje další funkce pro práci s webovými stránkami, jako jsou sessions .
Je však třeba poznamenat, že z hlediska rychlosti není knihovna podle výsledků testů „lehká“ a znatelně ztrácí na ostatní běžné šablonovací enginy .
Template Toolkit používá svůj vlastní jazyk, který má bohatou, ale snadno se naučitelnou syntaxi.
Jednoduchý příklad šablony:
<html> <head><title>[% title %]</title></head> <body> Výstup seznamu: <ul> [% FOREACH i = položky %] <li>[% i %]</li> [%KONEC%] </ul> </body> </html>A skript, který to nazývá:
# !/usr/bin/perl use Template ; my $tt2 = nová šablona ({ INCLUDE_PATH => '/cesta/k/šablonám' #Cesta k adresáři šablon }); my $vars = { title => 'Název stránky' , položky => [ 'Jedna' , 'Dva' , 'Tři' ] }; print "Typ obsahu: text/html\n\n" ; $tt2 -> proces ( "page1.htm" , $vars );Výchozí oddělovače bloků kódu jsou [% a %] . Můžete však použít jakoukoli jinou sekvenci znaků, například <% %> , <? ?> a tak dále. Navíc můžete pořadí kdykoli změnit přímo v šabloně.
Níže je uveden seznam některých funkcí sady nástrojů pro šablony:
hash.key - přístup k poli hash
klíče.1 - prvek pole s indexem 1
object.method
- jednotné
volání objektové metody
Úplný seznam funkcí Template Toolkit je velmi dlouhý. Více podrobností naleznete v dokumentaci, kterou naleznete na odkazech v dolní části stránky.
Vzhledem k tomu, že v Perlu jsou proměnné různých typů a v Template Toolkit se všechny nazývají stejně, vznikají nejasnosti.
Práce s objekty hash a objekty pole má funkce:
Když se pokusíte projít objekt pole přes FOREACH, ukáže se, že v seznamu bude pouze jeden prvek - samotný objekt.
A při přístupu k prvku arrayobj.$index , kde index je index požadovaného prvku, se Template Toolkit pokusí zavolat metodu s tímto názvem. A metody s názvy 0, 7, 12 atd. obecně v programovacích jazycích neexistují.
Chcete-li tyto problémy vyřešit, musíte do kódu třídy přidat metodu as_list () – to je to, co Template Tookit volá při použití FOREACH.
sub as_list { [ @ { $_ [ 0 ]}] }Smyslem tohoto kódu je, že se vezme samotný objekt, přemění se na běžné pole a okamžitě se převede na referenci pole – to, co je potřeba pro FOREACH.
Jak as_list() pomáhá s výběrem konkrétních prvků z objektu?
aref = aref_object . jako_seznam (); aref .0 ; aref .1 ;Problémy jsou způsobeny přítomností funkce AUTOLOAD ve třídě:
Druhý problém lze vyřešit takto:
sub AUTOLOAD { my ( $sub_name ) = $AUTOLOAD =~ /([^:]+)$/ ; #Najděte název požadované metody if ( existuje $_ [ 0 ]{ $sub_name }) { #Pokud má objekt klíč s názvem $sub_name, vraťte $_ [ 0 ]{ $sub_name } #potom jej vraťte } }Existuje pole aref a proměnná ix. Chceme vypsat prvek pole na indexu uvedeném v ix.
To by bylo špatně:
aref . ixV tomto případě bude proveden pokus o volání metody ix.
A toto je správně:
aref . $ixZnak dolaru $ se používá k nahrazení hodnoty proměnné do výrazu.
Zatímco Template Tookit je považován za "lehkou" knihovnu šablon, pokročilá syntaxe a velká sada dalších funkcí naznačují zaujatost vůči "těžkým vahám".
Přestože je šablona volána ke zpracování z perlského skriptu, je možné vložit příkazy Template Toolkit přímo do kódu běžných HTML stránek, které si uživatelé přímo vyžádají. Chcete-li to provést, musíte nainstalovat modul Apache::Template a provést malou konfiguraci serveru Apache.
Tvůrce knihovny Andy Wardley . Nejnovější verzi knihovny (Template-Toolkit-N.NN.tar.gz) si můžete stáhnout z CPAN . Odkazy na zdroje viz níže.
Vývojáři používající Windows si mohou stáhnout all-in-one archiv obsahující Apache 2, Perl 5.x, mod perl 1.99 a mnoho užitečných knihoven, které nejsou součástí standardní distribuce Perlu, jako je šablona Template Toolkit 2 a Apache:. Archiv je zde: ftp://theoryx5.uwinnipeg.ca/pub/CPAN (nedostupný odkaz) .