Típus Rendszer

A típusrendszer a robusztus alkalmazások fejlesztésének legfontosabb eleme. A Latte elhozza a sablonokba a típustámogatást. Annak ismerete, hogy az egyes változók milyen adat- vagy objektumtípusúak, lehetővé teszi, hogy

Két olyan pont, amely jelentősen javítja a fejlesztés minőségét és kényelmét.

A bejelentett típusok tájékoztató jellegűek, és a Latte jelenleg nem ellenőrzi őket.

Hogyan kezdjük el használni a típusokat? Hozzon létre egy sablon osztályt, pl. CatalogTemplateParameters, amely az átadott paramétereket reprezentálja:

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(),
));

Ezután a sablon elejére illessze be a {templateType} címkét a teljes osztálynévvel (beleértve a névteret is). Ez meghatározza, hogy a sablonban a $langs és a $products változók legyenek a megfelelő típusokkal együtt. A helyi változók típusait is megadhatja a címkék segítségével {var}, {varType} és {define}.

Most az IDE helyesen tudja az automatikus kitöltést.

Hogyan menthető el a munka? Hogyan lehet a lehető legegyszerűbben megírni egy sablon osztályt vagy a {varType} címkéket? Generáltassa őket. Pontosan erre szolgál a {templatePrint} és a {varPrint} címkepár. Ha a sablonban elhelyezzük az egyik ilyen taget, akkor a normál megjelenítés helyett az osztály vagy a sablon kódja jelenik meg. Ezután egyszerűen válassza ki és másolja be a kódot a projektjébe.

{templateType}

A sablonhoz átadott paraméterek típusait a class segítségével deklaráljuk:

{templateType MyApp\CatalogTemplateParameters}

{varType}

Hogyan deklaráljuk a változók típusait? Erre a célra használjuk a {varType} címkét egy meglévő változóhoz, vagy a {var}:

{varType Nette\Security\User $user}
{varType string $lang}

{templatePrint}

Ezt az osztályt a {templatePrint} címke használatával is létrehozhatja. Ha a sablon elejére helyezi, akkor a normál sablon helyett az osztály kódja jelenik meg. Ezután egyszerűen válassza ki és másolja be a kódot a projektjébe.

{varPrint}

A {varPrint} címke időt takarít meg. Ha elhelyezi egy sablonban, a {varType} címkék listája jelenik meg a normál megjelenítés helyett. Ezután egyszerűen válassza ki és másolja be a kódot a sablonjába.

A {varPrint} olyan helyi változókat sorol fel, amelyek nem sablonparaméterek. Ha az összes változót fel szeretné sorolni, használja a {varPrint all}.

verzió: 3.0