Sistem de tip
Sistemul de tipuri este principalul element pentru dezvoltarea de aplicații robuste. Latte aduce suportul pentru tipuri în șabloane. Cunoașterea tipului de date sau de obiect al fiecărei variabile permite
- IDE-ului să completeze automat în mod corect (a se vedea integrarea și pluginurile)
- analiza statică pentru detectarea erorilor
Două puncte care îmbunătățesc semnificativ calitatea și confortul dezvoltării.
Tipurile declarate sunt informative, iar Latte nu le verifică în acest moment.
Cum să începem să folosim tipurile? Creați o clasă șablon, de exemplu CatalogTemplateParameters
, care să
reprezinte parametrii trecuți:
class CatalogTemplateParameters
{
public function __construct(
public string $langs,
/** @var ProductEntity[] */
public array $products,
public Address $address,
) {}
}
$latte->render('template.latte', new CatalogTemplateParameters(
address: $userAddress,
lang: $settings->getLanguage(),
products: $entityManager->getRepository('Product')->findAll(),
));
Apoi inserați eticheta {templateType}
cu numele complet al clasei (inclusiv spațiul de nume) la începutul
șablonului. Acest lucru definește că în șablon există variabilele $langs
și $products
, inclusiv
tipurile corespunzătoare. Puteți, de asemenea, să specificați tipurile variabilelor locale utilizând etichetele {var}
, {varType}
și {define}
.
Acum, IDE-ul poate completa automat în mod corect.
Cum se salvează munca? Cum să scrieți o clasă șablon sau etichete {varType}
cât mai ușor posibil?
Obțineți-le generate. Tocmai asta fac perechea de tag-uri {templatePrint}
și {varPrint}
. Dacă
plasați una dintre aceste etichete într-un șablon, codul clasei sau al șablonului este afișat în loc de redarea normală.
Apoi, este suficient să selectați și să copiați codul în proiectul dumneavoastră.
{templateType}
Tipurile de parametri transmise șablonului sunt declarate cu ajutorul clasei:
{templateType MyApp\CatalogTemplateParameters}
{varType}
Cum se declară tipurile de variabile? În acest scop, folosiți eticheta {varType}
pentru o variabilă
existentă, sau {var}
:
{varType Nette\Security\User $user}
{varType string $lang}
{templatePrint}
De asemenea, puteți genera această clasă utilizând eticheta {templatePrint}
. Dacă o plasați la începutul
șablonului, codul clasei este afișat în loc de șablonul normal. Apoi, este suficient să selectați și să copiați codul în
proiectul dvs.
{varPrint}
Eticheta {varPrint}
vă permite să economisiți timp. Dacă o plasați într-un șablon, în loc de redarea
normală, este afișată lista de etichete {varType}
. Apoi, nu trebuie decât să selectați și să copiați codul
în șablonul dvs.
Eticheta {varPrint}
enumeră variabilele locale care nu sunt parametri de șablon. Dacă doriți să listați
toate variabilele, utilizați {varPrint all}
.