Posredovanje spremenljivk med predlogami
V tem priročniku je pojasnjeno, kako se spremenljivke posredujejo med predlogami v Latte z uporabo različnih oznak, kot so
{include}
, {import}
, {embed}
, {layout}
, {sandbox}
in druge.
Naučili se boste tudi, kako delati s spremenljivkami v oznakah {block}
in {define}
ter kakšen je
namen oznake {parameters}
.
Vrste spremenljivk
Spremenljivke v Latte lahko razdelimo v tri kategorije glede na to, kako in kje so opredeljene:
Vhodne spremenljivke so tiste, ki se v predlogo posredujejo od zunaj, na primer iz skripte PHP ali z uporabo oznake,
kot je {include}
.
Okoliške spremenljivke so spremenljivke, ki obstajajo na lokaciji določene oznake. Sem spadajo vse vhodne
spremenljivke in druge spremenljivke, ustvarjene z uporabo oznak, kot so {var}
, {default}
, ali znotraj
zanke {foreach}
.
Izrecne spremenljivke so tiste, ki so neposredno določene v oznaki in poslane ciljni predlogi.
{block}
Oznaka {block}
se uporablja za opredelitev blokov kode, ki jih je mogoče ponovno uporabiti in jih prilagoditi ali
razširiti v podedovanih predlogah. Okoliške spremenljivke, opredeljene pred blokom, so na voljo znotraj bloka, vendar se vse
spremembe spremenljivk odražajo le znotraj tega bloka.
{define}
Oznaka {define}
se uporablja za ustvarjanje blokov, ki se prikažejo le, če jih pokličete z uporabo
{include}
. Spremenljivke, ki so na voljo znotraj teh blokov, so odvisne od tega, ali so v definiciji določeni
parametri. Če so parametri navedeni, so dostopni samo ti parametri. Če ne, so dostopne vse vhodne spremenljivke predloge,
v kateri so bloki definirani.
{parameters}
Oznaka {parameters}
se uporablja za izrecno prijavo pričakovanih vhodnih spremenljivk na začetku predloge. Tako
lahko enostavno dokumentirate pričakovane spremenljivke in njihove podatkovne tipe. Prav tako je mogoče opredeliti privzete
vrednosti.
{include file}
Oznaka {include file}
se uporablja za vstavljanje celotne predloge. Tej predlogi se posredujejo tako vhodne
spremenljivke predloge, v kateri se uporablja oznaka, kot tudi izrecno določene spremenljivke. Vendar lahko ciljna predloga
omeji področje uporabe z uporabo {parameters}
.
{include block}
Pri vstavljanju bloka, definiranega v isti predlogi, se mu posredujejo vse okoliške in izrecno definirane spremenljivke:
V tem primeru se spremenljivki $name
in $age
posredujeta bloku blockName
. Enako se
obnaša tudi {include parent}
.
Pri vstavljanju bloka iz druge predloge se posredujejo samo vhodne spremenljivke in izrecno določene spremenljivke. Okoliške spremenljivke niso samodejno na voljo.
{layout}
ali {extends}
Te oznake določajo postavitev, v katero se prenesejo vhodne spremenljivke podrejene predloge in spremenljivke, ustvarjene v kodi pred bloki:
Predloga layout.latte
:
{embed}
Oznaka {embed}
je podobna oznaki {include}
, vendar omogoča vstavljanje blokov v predlogo. Za
razliko od {include}
se posredujejo samo izrecno deklarirane spremenljivke:
V tem primeru ima predloga menu.latte
dostop samo do spremenljivke $items
.
Nasprotno pa imajo bloki znotraj {embed}
dostop do vseh okoliških spremenljivk:
{import}
Oznaka {import}
se uporablja za nalaganje blokov iz drugih predlog. Uvoženim blokom se posredujejo vhodne in
izrecno deklarirane spremenljivke.
{sandbox}
Oznaka {sandbox}
izolira predlogo za varno obdelavo. Spremenljivke se posredujejo izključno izrecno.