A Template Toolkit egy hatékony, könnyű Perl sablonkönyvtár, amely szétválasztja a kódot, az adatokat és a prezentációt.
A "könnyű" ebben az esetben azt jelenti, hogy a felhasználói interakció, az adatbázissal való munka, a sablonok meghívása feldolgozásra és megjelenítésre a munka minden logikáját tartalmazó perl szkripteken keresztül történik (lásd az üzleti logikát ), és maguk a sablonok főként felelősek a tervezésért / teljesítmény.
Ez ellentétben áll a "teljes értékű" fejlesztőrendszerekkel (keretrendszerekkel), amelyekben a Perl nagyon szorosan integrálva van a HTML -lel , és további funkciókat biztosít a weboldalakkal, például a munkamenetekkel való munkavégzéshez .
Azonban meg kell jegyezni, hogy a sebesség tekintetében a teszteredmények szerint a könyvtár nem "könnyű" és észrevehetően veszít a többi gyakori sablonmotorral szemben .
A Template Toolkit a saját nyelvét használja, amely gazdag, de könnyen megtanulható szintaxissal rendelkezik.
Egy egyszerű sablon példa:
<html> <head><title>[% cím %]</title></head> <test> Lista kimenet: <ul> [% FOREACH i = tételek %] <li>[% i %]</li> [%END%] </ul> </body> </html>És a forgatókönyv, ami ezt hívja:
# !/usr/bin/perl use Template ; my $tt2 = new Sablon ({ INCLUDE_PATH => '/útvonal/a/sablonokhoz' #A sablonkönyvtár elérési útja }); my $vars = { title => 'Oldalcím' , items => [ 'Egy' , 'Két' , 'Három' ] }; print "Content-type: text/html\n\n" ; $tt2 -> process ( "oldal1.htm" , $vars );Az alapértelmezett kódblokk elválasztók a [% és %] . De használhat bármilyen más karaktersorozatot, például <% %> , <? ?> és így tovább. Ezenkívül a sorrendet bármikor módosíthatja közvetlenül a sablonon belül.
Az alábbiakban felsoroljuk a Template Toolkit néhány funkcióját:
hash.key - a hash kulcs tömb elérése.1 - 1 indexű tömbelem object.method
- objektum metódus egységes hívása
.
A Template Toolkit funkcióinak teljes listája nagyon hosszú. További részletek a dokumentációban találhatók, amely az oldal alján található linkeken található.
Abból a tényből adódóan, hogy a Perlben különböző típusú változók vannak, és a Template Toolkitben mindegyiket ugyanúgy hívják, kétértelműség adódik.
A hash objektumokkal és tömbobjektumokkal való munkavégzésnek vannak funkciói:
Amikor megpróbál áthaladni egy tömb objektumon keresztül a FOREACH-on keresztül, kiderül, hogy csak egy elem lesz a listában - maga az objektum.
Az arrayobj.$index elem elérésekor pedig , ahol az index a szükséges elem indexe, a Template Toolkit megpróbál meghívni egy ilyen nevű metódust. És a 0, 7, 12 stb. nevű metódusok általában nem léteznek a programozási nyelvekben.
A problémák megoldásához hozzá kell adni az as_list () metódust az osztálykódhoz – ezt hívja meg a Template Tookit a FOREACH használatakor.
sub as_list { [ @ { $_ [ 0 ]}] }Ennek a kódnak az a jelentése, hogy magát az objektumot veszik, szabályos tömbbé alakítják, és azonnal tömbhivatkozássá alakítják át - ami a FOREACH-hoz kell.
Hogyan segít az as_list() konkrét elemek kiválasztásában egy objektumból?
aref = aref_object . as_list (); aref .0 ; aref .1 ;A problémákat az AUTOLOAD függvény jelenléte okozza az osztályban:
A második probléma a következőképpen oldható meg:
sub AUTOLOAD { my ( $al_név ) = $AUTOLOAD =~ /([^:]+)$/ ; #Keresse meg a kért metódus nevét if ( létezik $_ [ 0 ]{ $al_név }) { #Ha az objektumnak $al_név nevű kulcsa van, adja vissza $_ [ 0 ]{ $al_név } #majd adja vissza } }Van egy aref tömb és egy ix változó. A tömbelemet az ix-ben megadott indexen szeretnénk kiadni.
Ez rossz lenne:
aref . ixEbben az esetben a rendszer megpróbálja meghívni az ix metódust.
És ez így helyes:
aref . $ixA $ dollárjelet egy változó értékének kifejezésben való helyettesítésére használják.
Míg a Template Tookit "könnyű" sablonkönyvtárnak számít, a fejlett szintaxis és a további szolgáltatások nagy készlete a "nehézsúlyúak" felé való elfogultságot jelez.
Bár a sablont egy perl-szkriptből kell feldolgozni, lehetséges, hogy a Template Toolkit parancsokat közvetlenül a felhasználók által közvetlenül kért közönséges HTML-oldalak kódjába ágyazzák be. Ehhez telepítenie kell az Apache::Template modult, és el kell végeznie az Apache-kiszolgáló kis konfigurációját.
A könyvtár alkotója, Andy Wardley . Letöltheti a könyvtár legújabb verzióját (Template-Toolkit-N.NN.tar.gz) a CPAN webhelyről . Lásd az alábbi linkeket a forrásokhoz.
A Windowst használó fejlesztők letölthetnek egy mindent az egyben archívumot, amely tartalmazza az Apache 2-t, a Perl 5.x-et, a mod perl 1.99-et, és számos olyan hasznos könyvtárat, amely nem szerepel a Perl szabványos terjesztésében, például a Template Toolkit 2 és az Apache: sablon. Az archívum itt található: ftp://theoryx5.uwinnipeg.ca/pub/CPAN (nem elérhető link) .