Template Toolkit on tehokas, kevyt Perl - mallikirjasto, joka erottaa koodin, datan ja esityksen.
"Kevyt" tarkoittaa tässä tapauksessa, että käyttäjän vuorovaikutus, työskentely tietokannan kanssa , mallien kutsuminen käsittelyä ja näyttöä varten tehdään perl-skriptien kautta, jotka sisältävät kaiken työn logiikan (katso liiketoimintalogiikka ), ja mallit itse ovat pääosin vastuussa suunnittelusta / esitys.
Tämä on toisin kuin "täysimittaiset" kehitysjärjestelmät (kehykset), joissa Perl on erittäin tiiviisti integroitu HTML :ään ja tarjoaa lisätoimintoja web-sivujen, kuten istuntojen , kanssa työskentelyyn .
On kuitenkin huomattava, että nopeuden suhteen testitulosten mukaan kirjasto ei ole "kevyt" ja häviää huomattavasti muille yleisille mallikoneille .
Template Toolkit käyttää omaa kieltään, jolla on rikas mutta helposti opittava syntaksi.
Yksinkertainen malliesimerkki:
<html> <head><title>[% otsikko %] </title></head> <body> Listan tulos: <ul> [% FOREACH i = kohteet %] <li>[% i %]</li> [%END%] </ul> </body> </html>Ja sitä kutsuva käsikirjoitus:
# !/usr/bin/perl use Template ; my $tt2 = uusi malli ({ INCLUDE_PATH => '/polku/malleja' #Polku mallihakemistoon }); my $vars = { title => 'Sivun otsikko' , items => [ 'Yksi' , 'Kaksi' , 'Kolme' ] }; tulosta "Content-type: text/html\n\n" ; $tt2 -> prosessi ( "sivu1.htm" , $vars );Oletuskoodilohkoerottimet ovat [% ja %] . Mutta voit käyttää mitä tahansa muuta merkkijonoa, kuten <% %> , <? ?> ja niin edelleen. Lisäksi voit muuttaa järjestystä milloin tahansa suoraan mallin sisällä.
Alla on luettelo joistakin Template Toolkitin ominaisuuksista:
hash.key - pääsy hash-
avaintaulukkoon.1 - taulukon elementti, jonka indeksi on 1
object.method
- objektimenetelmän
kutsuminen
Täydellinen luettelo Template Toolkit -ominaisuuksista on hyvin pitkä. Lisätietoja löytyy dokumentaatiosta, joka löytyy sivun alalaidasta olevista linkeistä.
Koska Perlissä on erityyppisiä muuttujia ja Template Toolkitissa niitä kutsutaan kaikkia samalla tavalla, syntyy epäselvyyksiä.
Hajautusobjektien ja taulukkoobjektien kanssa työskentelyssä on ominaisuuksia:
Kun yrität kulkea taulukkoobjektin läpi FOREACHin kautta, käy ilmi, että luettelossa on vain yksi elementti - itse objekti.
Ja kun käytetään elementtiä arrayobj.$index , jossa indeksi on vaaditun elementin indeksi, Template Toolkit yrittää kutsua menetelmää tällä nimellä. Ja menetelmiä, joiden nimi on 0, 7, 12 jne., ei yleensä ole ohjelmointikielissä.
Näiden ongelmien ratkaisemiseksi sinun on lisättävä as_list () -metodi luokkakoodiin - tätä Template Tookit kutsuu käytettäessä FOREACHia.
sub as_list { [ @ { $_ [ 0 ]}] }Tämän koodin tarkoitus on, että itse objekti otetaan, muutetaan tavalliseksi taulukoksi ja muunnetaan välittömästi taulukkoviittaukseksi - mitä FOREACHille tarvitaan.
Miten as_list() auttaa valitsemaan tiettyjä elementtejä objektista?
aref = aref_objekti . as_list (); aref .0 ; aref .1 ;Ongelmia aiheuttaa AUTOLOAD-funktion läsnäolo luokassa:
Toinen ongelma voidaan ratkaista seuraavasti:
sub AUTOLOAD { oma ( $ali_nimi ) = $AUTOLOAD =~ /([^:]+)$/ ; #Etsi pyydetyn menetelmän nimi if ( olemassa $_ [ 0 ]{ $sub_name }) { #Jos objektilla on avain nimeltä $sub_name, palauta $_ [ 0 ]{ $sub_name } #then palauta se } }Siellä on taulukko aref ja muuttuja ix. Haluamme tulostaa taulukkoelementin kohdassa ix määritetyllä indeksillä.
Tämä olisi väärin:
aref . ixTässä tapauksessa menetelmää ix yritetään kutsua.
Ja tämä on oikein:
aref . $ixDollarimerkkiä $ käytetään korvaamaan muuttujan arvo lausekkeeksi.
Vaikka Template Tookitia pidetään "kevyenä" mallikirjastona, edistynyt syntaksi ja suuri joukko lisäominaisuuksia osoittavat, että "raskassarja" on painottunut.
Vaikka mallia kutsutaan prosessoitavaksi perl-komentosarjasta, on mahdollista upottaa Template Toolkit -komennot suoraan tavallisten HTML-sivujen koodiin, joita käyttäjät pyytävät suoraan. Tätä varten sinun on asennettava Apache::Template-moduuli ja tehtävä pieni konfiguraatio Apache-palvelimesta.
Kirjaston luoja Andy Wardley . Voit ladata kirjaston uusimman version (Template-Toolkit-N.NN.tar.gz) CPANista . Katso linkit resursseihin alla.
Windowsia käyttävät kehittäjät voivat ladata all-in-one-arkiston, joka sisältää Apache 2:n, Perl 5.x:n, mod perl 1.99:n ja monia hyödyllisiä kirjastoja, jotka eivät sisälly Perlin vakiojakeluun, kuten Template Toolkit 2:n ja Apache: -mallin. Arkisto on täällä: ftp://theoryx5.uwinnipeg.ca/pub/CPAN (linkki ei saatavilla) .