Sablon eszköztár

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2017. június 27-én felülvizsgált verziótól ; az ellenőrzések 5 szerkesztést igényelnek .

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 .

Jellemzők/előnyök/specifikációk

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:

  • Lehetővé teszi a webhely oldalainak könnyű fejlesztését bármilyen séma szerint: felülről lefelé, kívülről befelé és belülről kifelé.
  • Egységes szintaxist használ minden adattípushoz:

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 munka felgyorsítása érdekében a sablonokat az első feldolgozás során gyöngyszkriptekké fordítják, és a beállításoktól függően lemezre vagy memóriába mentik. Ennek köszönhetően a motor fordulatszáma nagyon magas és közel áll a tiszta Perlhez.
  • Lehetővé teszi több sablon számára közös adatok használatát: beállítások, változók, állandók, függvények stb.
  • A bővítmények és szűrők írására szolgáló fejlett rendszer megkönnyíti saját beépülő modulok/szűrők megírását, vagy sok meglévő bővítmény használatát (a Template Toolkittel együtt szállítjuk).
  • Lehetővé teszi "nyers" Pearl beszúrását a sablonokba.
  • A blokkok lehetnek külön fájlok vagy egy külső vagy aktuális fájlon belül meghatározott blokkok.
  • A második verzióból megjelent innováció - "nézetek" (nézetek) lehetővé teszi sablonok létrehozását objektum-orientált megközelítéssel.
  • Feldolgozhatja az XML fájlokat, HTML formátumba konvertálva , így alternatívát kínálva az XSLT helyett .
  • A szállítás segédprogram-szkripteket tartalmaz, amelyek lehetővé teszik a szükséges HTML-oldalkészlet létrehozását tetszőleges sablonfájlokból.
  • Jó dokumentáció, amelyet sokan a Pearl könyvtárak dokumentációjának "arany standardjának" tartanak.

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

Hátrányok

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:

  1. elfogja a Template Toolkit virtuális metódusainak összes hívását
  2. mivel a Template Toolkit először megpróbálja megtalálni a megadott nevű objektum metódusát, és csak akkor, ha ez nem sikerül - az azonos nevű hash kulcsot megtalálni, világossá válik, hogy az AUTOLOAD is elfogja a hash kulcsok összes hívását

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

Tippek

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

Ebben az esetben a rendszer megpróbálja meghívni az ix metódust.

És ez így helyes:

aref . $ix

A $ dollárjelet egy változó értékének kifejezésben való helyettesítésére használják.

Jegyzetek

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.

Szerzők

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.

Linkek

Külső erőforrások

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

Perl sablonkönyvtárak

  • Könnyű, MVC
    • Sablon eszköztár
    • HTML::Sablon
    • Szöveg::Sablon
    • CGI::FastTemplate
  • Alkalmazásfejlesztő rendszerek
    • Embperl
    • Apache::ASP
    • HTML::Mason