Transmiterea variabilelor între șabloane
Acest ghid explică modul în care sunt transmise variabilele între șabloane în Latte, folosind diverse etichete, cum ar fi
{include}
, {import}
, {embed}
, {layout}
, {sandbox}
și altele. De
asemenea, veți învăța cum să lucrați cu variabilele din etichetele {block}
și {define}
și care
este scopul etichetei {parameters}
.
Tipuri de variabile
Variabilele din Latte pot fi împărțite în trei categorii în funcție de modul și locul în care sunt definite:
Variabilele de intrare sunt cele care sunt trecute în șablon din exterior, de exemplu, dintr-un script PHP sau
folosind un tag ca {include}
.
Variabilele înconjurătoare sunt variabilele care există în locația unei anumite etichete. Acestea includ toate
variabilele de intrare și alte variabile create cu ajutorul unor etichete precum {var}
, {default}
, sau
în cadrul unei bucle {foreach}
.
Variabilele explicite sunt cele specificate direct în cadrul unei etichete și trimise la șablonul țintă.
{block}
Eticheta {block}
este utilizată pentru a defini blocuri de cod reutilizabile care pot fi personalizate sau
extinse în șabloanele moștenite. Variabilele înconjurătoare definite înainte de bloc sunt disponibile în interiorul
blocului, dar orice modificare a variabilelor se reflectă numai în cadrul blocului respectiv.
{define}
Eticheta {define}
este utilizată pentru a crea blocuri care sunt redate numai atunci când sunt apelate folosind
{include}
. Variabilele disponibile în interiorul acestor blocuri depind de specificarea sau nu a unor parametri în
definiție. În cazul în care sunt specificați parametrii, numai acei parametri sunt accesibili. În caz contrar, sunt
accesibile toate variabilele de intrare din șablonul în care sunt definite blocurile.
{parameters}
Eticheta {parameters}
este utilizată pentru a declara în mod explicit variabilele de intrare așteptate la
începutul șablonului. În acest fel, puteți documenta cu ușurință variabilele așteptate și tipurile de date ale acestora.
De asemenea, este posibil să se definească valori implicite.
{include file}
Eticheta {include file}
este utilizată pentru a insera un șablon întreg. Acestui șablon i se transmit atât
variabilele de intrare ale șablonului în care se utilizează eticheta, cât și variabilele definite în mod explicit. Cu toate
acestea, șablonul țintă poate limita domeniul de aplicare folosind {parameters}
.
{include block}
Atunci când se inserează un bloc definit în același șablon, toate variabilele înconjurătoare și cele definite în mod explicit îi sunt transmise:
În acest exemplu, variabilele $name
și $age
sunt transmise blocului blockName
.
Același comportament se aplică și la {include parent}
.
Atunci când se inserează un bloc dintr-un alt șablon, se transmit numai variabilele de intrare și variabilele definite explicit. Variabilele înconjurătoare nu sunt disponibile în mod automat.
{layout}
sau {extends}
Aceste etichete definesc un aspect la care sunt transmise variabilele de intrare ale șablonului copil și variabilele create în cod înainte de blocuri:
Șablon layout.latte
:
{embed}
Eticheta {embed}
este similară cu {include}
, dar permite încorporarea de blocuri în șablon. Spre
deosebire de {include}
, sunt transmise doar variabilele declarate explicit:
În acest exemplu, șablonul menu.latte
are acces doar la variabila $items
.
În schimb, blocurile din interiorul {embed}
au acces la toate variabilele din jur:
{import}
Eticheta {import}
este utilizată pentru a încărca blocuri din alte șabloane. Atât variabilele de intrare,
cât și cele declarate explicit sunt transmise blocurilor importate.
{sandbox}
Eticheta {sandbox}
izolează șablonul pentru o procesare sigură. Variabilele sunt transmise exclusiv în mod
explicit.