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

versiune: 3.0