Set de instrumente pentru șabloane

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 iunie 2017; verificările necesită 5 modificări .

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 .

Caracteristici/beneficii/specificități

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:

  • Vă permite să dezvoltați cu ușurință paginile site-ului după orice schemă: de sus în jos, din exterior spre interior și din interior spre exterior.
  • Utilizează o sintaxă unificată pentru toate tipurile de date:

hash.key  - accesarea hash key
array.1  - element de matrice cu index 1
object.method
-  apelarea uniformă a unei metode obiect

  • Pentru a accelera munca, șabloanele sunt compilate în scripturi perle în timpul primei procesări și, în funcție de setări, sunt salvate pe disc sau pe memorie. Datorită acestui lucru, viteza motorului este foarte mare și aproape de Perl pur.
  • Permite mai multor șabloane să utilizeze date comune: setări, variabile, constante, funcții și așa mai departe.
  • Un sistem avansat de scriere a plugin-urilor și filtrelor facilitează scrierea propriilor plugin-uri/filtre sau folosirea multor celor existente (furnizate împreună cu Setul de instrumente pentru șabloane).
  • Vă permite să inserați Pearl „raw” în șabloane.
  • Blocurile pot fi fie fișiere separate, fie blocuri definite în interiorul unui fișier extern sau curent.
  • Inovația care a apărut din a doua versiune - „vizualizări” (vizualizări), vă permite să creați șabloane folosind o abordare orientată pe obiecte.
  • Poate procesa fișiere XML , transformându-le în HTML , oferind astfel o alternativă la XSLT .
  • Livrarea include scripturi utilitare care permit generarea setului necesar de pagini HTML dintr-un set arbitrar de fișiere șablon.
  • O documentare bună, care este considerată de mulți „standardul de aur” al documentației printre bibliotecile Pearl.

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.

Dezavantaje

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ă:

  1. interceptează toate apelurile către metodele virtuale ale setului de instrumente șabloane
  2. deoarece Template Toolkit încearcă mai întâi să găsească metoda obiectului cu numele specificat și numai dacă nu reușește - pentru a găsi cheia hash cu același nume, devine clar că AUTOLOAD interceptează și toate apelurile către cheile hash

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 } }

Sugestii

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 . $ix

Semnul dolar $ este folosit pentru a înlocui valoarea unei variabile într-o expresie.

Note

Î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.

Autorii

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.

Link -uri

Resurse externe

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) .

Biblioteci de șabloane Perl

  • Ușoare, MVC
    • Set de instrumente pentru șabloane
    • HTML::Șablon
    • Text::Șablon
    • CGI::FastTemplate
  • Sisteme de dezvoltare a aplicațiilor
    • Emperl
    • Apache::ASP
    • HTML::Mason