Žymės įrašai

Lapkritis15

Smarty 3 apžvalga (Komentarai 367)

Žymės: php,smarty

Pasidalink!

Smarty

Po beveik 2 metus (2008-12-16 - 2010-11-12) trukusio programavimo, buvo išleista 3 PHP šablonų variklio „Smarty“ versija.

Sistema buvo perrašyta iš pagrindų, pritaikyta PHP 5 versijai, buvo sukurtas naujas sintaksės nagrinėjimo variklis (parser), pagerėjo sistemos darbo našumas, šiek tiek pasikeitė šablonų sintaksė.

Nors egzistuoja kontraversiškos nuomonės, reikalingas PHP kalbos šablonų variklis ar ne, „Smarty“ suteikia papildomas galimybes atskiriant prezentacijos logiką nuo programos logikos. Be to, techniniams dizaineriams, nemokantiems PHP kalbos, dirbti su „Smarty“ gali būti patogiau, saugiau ir produktyviau.

Smarty 3 sintaksė šiek tiek pasikeitė nuo 2 versijos, todėl seni šablonai gali neveikti, ypač jei jie buvo parašyti su klaidomis. 3 versija į sintaksės klaidas žiūri griežčiau, tačiau turi papildomų galimybių.

Kas pasikeitė Smarty 3 versijos šablonų sintaksėje nuo 2 versijos:

Atsisakyta {ldelim} ir {rdelim}

2 versijoje norint naudoti { ir } simbolius šablone (pvz.: rašant Javascript funkcijas) juos reikdavo pakeisti {ldelim} ir {rdelim} simboliais arba rašyti tekstą tarp {literal} ir {/literal}. Dabar to daryti nebereikia, tačiau rašant kintamuosius ar funkcijas nebegalima palikti tarpų tarp skirtukų, pvz,: { $foo } ir išves tokį tekstą, o ne kintamojo reikšmę.

Masyvų modifier'is

2 versijoje norint modifier'iui perduoti visą masyvą, o ne atskirus jo elementus, reikdavo pridėti @ simbolį, pvz.: {$masyvas|@count}. Dabar visas masyvas perduodamas modifier'iui, pvz.: {$masyvas|count}.

{php} žymės

Standartiškai {php} žymės 3 versijoje yra uždraustos. Jas galima įjungti nurodant $smarty->allow_php_tag = true;

Kabutės parametruose

2 versijoje kabutės parametruose buvo nebūtinos, tačiau 3 versijoje jas naudoti būtina, pvz.: {include file="/kelias/iki/sablono.tpl"}

Visi pakeitimai, nesuderinami su „Smarty“ 2 versija.

Taip pat buvo padaryti pakeitimai, palengvinantys darbą su duomenimis:

Išplėstas {foreach} funkcionalumas

3 versijoje galima naudoti tokią {foreach} sintaksę:

{foreach $masyvas as $reiksme}

{$reiksme}

{/foreach}

Taip pat palengvintas ciklo savybių gavimas, pvz.:

{$reiskme@key} - masyvo raktas

{$reiksme@iteration} - ciklo iteracija

{$reiksme@total} - visas masyvo elementų kiekis

{$reiksme@first}, {$reiksme@last} - grąžina true, jei elementas pirmas/paskutinis. Patogu naudoti sąlygos sakiniuose

2 „Smarty“ versijoje šios savybės buvo pasiekiamos per {$smarty.foreach.<ciklo vardas>.<savybė>}

{strip} blokas

Naudojant {strip} ir {/strip} galima nurodyti, jog visas output'as šiame bloke bus rašomas vienoje eilutėje, pašalinant tarpus, naujas eilutes ir kt. whitespace simbolius.

„Smarty“ 3 versijoje taip pat atsirado šablonų paveldėjimas, funkcijų kūrimas pačiuose šablonuose ir kt. Taip pat šis tas pasikeitė PHP pusėje, pvz.: dabar norint paveldėti Smarty klasę, reikia iškviesti tėvinį konstruktorių - parent::__construct();

Pilna „Smarty“ 3 versijos apžvalga smarty.net tinklalapyje.

« 1 »

Žymės RSS Žymės RSS