Template Toolkit este o bibliotecă de șabloane Perl puternică și ușoară, care separă codul, datele și prezentarea.
„Ușoară” în acest caz înseamnă că interacțiunea utilizatorului, lucrul cu baza de date , apelarea șabloanelor pentru procesare și afișare se face prin scripturi perl care conțin toată logica de lucru (vezi logica de afaceri ), iar șabloanele în sine sunt responsabile în principal de proiectare / performanţă.
Acest lucru este în contrast cu sistemele de dezvoltare (cadre) „cu drepturi depline”, în care Perl este foarte strâns integrat cu HTML și oferă funcționalități suplimentare pentru lucrul cu pagini web, cum ar fi sesiunile .
Cu toate acestea, trebuie remarcat faptul că, în ceea ce privește viteza, conform rezultatelor testelor , biblioteca nu este „ușoară” și pierde semnificativ în fața altor motoare de șabloane obișnuite .
Setul de instrumente pentru șabloane folosește propriul său limbaj, care are o sintaxă bogată, dar ușor de învățat.
Un exemplu simplu de șablon:
<html> <head><title>[% title %]</title></head> <corp> Ieșire listă: <ul> [% FOREACH i = articole %] <li>[% i %]</li> [%SFÂRŞIT%] </ul> </corp> </html>Și scenariul care îl numește:
# !/usr/bin/perl use Template ; my $tt2 = new Template ({ INCLUDE_PATH => '/path/to/templates' #Path to template directory }); my $vars = { title => 'Titlul paginii' , items => [ 'Unul' , 'Doi' , 'Trei' ] }; print "Tipul conținut: text/html\n\n" ; $tt2 -> proces ( "pagina1.htm" , $vars );Separatoarele implicite ale blocurilor de cod sunt [% și %] . Dar puteți folosi orice altă secvență de caractere, cum ar fi <% %> , <? ?> și așa mai departe. Mai mult, puteți schimba oricând secvența chiar în interiorul șablonului.
Mai jos este o listă cu câteva dintre caracteristicile setului de instrumente pentru șabloane:
hash.key - accesarea hash key
array.1 - element de matrice cu index 1
object.method
-
apelarea uniformă a unei metode obiect
Lista completă a funcțiilor Setului de instrumente șabloane este foarte lungă. Mai multe detalii găsiți în documentație, care poate fi găsită la linkurile din partea de jos a paginii.
Datorită faptului că în Perl există variabile de diferite tipuri, iar în Template Toolkit toate sunt numite în același mod, apar ambiguități.
Există caracteristici de lucru cu obiecte hash și obiecte matrice:
Când încercați să treceți printr-un obiect matrice prin FOREACH, se dovedește că va exista un singur element în listă - obiectul în sine.
Și când accesați elementul arrayobj.$index , unde index este indexul elementului necesar, Template Toolkit va încerca să apeleze o metodă cu acest nume. Și metodele cu nume 0, 7, 12 etc., în general, nu există în limbajele de programare.
Pentru a rezolva aceste probleme, trebuie să adăugați metoda as_list () la codul clasei - asta este ceea ce Template Tookit apelează atunci când utilizați FOREACH.
sub as_list { [ @ { $_ [ 0 ]}] }Semnificația acestui cod este că obiectul în sine este preluat, transformat într-o matrice obișnuită și convertit imediat într-o referință de matrice - ceea ce este necesar pentru FOREACH.
Cum ajută as_list() la selectarea anumitor elemente dintr-un obiect?
aref = aref_obiect . ca_listă (); aref .0 ; aref .1 ;Problemele sunt cauzate de prezența funcției AUTOLOAD în clasă:
A doua problemă poate fi rezolvată astfel:
sub AUTOLOAD { my ( $sub_name ) = $AUTOLOAD =~ /([^:]+)$/ ; #Găsiți numele metodei solicitate dacă ( există $_ [ 0 ]{ $sub_name }) { #Dacă obiectul are o cheie numită $sub_name, returnați $_ [ 0 ]{ $sub_name } #atunci returnați-o } }Există o matrice aref și o variabilă ix. Vrem să scoatem elementul de matrice la indexul specificat în ix.
Acest lucru ar fi greșit:
aref . ixÎn acest caz, se va încerca apelarea metodei ix.
Si asta este corect:
aref . $ixSemnul dolar $ este folosit pentru a înlocui valoarea unei variabile într-o expresie.
În timp ce Template Tookit este considerată o bibliotecă de șabloane „ușoară”, sintaxa avansată și un set mare de caracteristici suplimentare indică o părtinire față de „greutate”.
Deși șablonul este chemat pentru procesare dintr-un script perl, este posibil să încorporați comenzile Template Toolkit direct în codul paginilor HTML obișnuite pe care utilizatorii le solicită direct. Pentru a face acest lucru, trebuie să instalați modulul Apache::Template și să faceți o mică configurație a serverului Apache.
Creatorul bibliotecii Andy Wardley . Puteți descărca cea mai recentă versiune a bibliotecii (Template-Toolkit-N.NN.tar.gz) de la CPAN . Vedeți mai jos link-urile către resurse.
Dezvoltatorii care folosesc Windows pot descărca o arhivă all-in-one care conține Apache 2, Perl 5.x, mod perl 1.99 și multe biblioteci utile care nu sunt incluse în distribuția standard a Perl, cum ar fi Template Toolkit 2 și șablonul Apache:. Arhiva este aici: ftp://theoryx5.uwinnipeg.ca/pub/CPAN (link indisponibil) .