Nette Documentation Preview

syntax
Típus Rendszer
**************

<div class=perex>

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

- Az IDE helyesen automatikusan kitölti a típusokat (lásd [integráció és bővítmények |recipes#Editors and IDE]).
- statikus elemzés a hibák felismeréséhez

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

</div>

.[note]
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:

```php
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}` |tags#var-default], `{varType}` és [`{define}` |template-inheritance#definitions].

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:

```latte
{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}` |tags#var-default]:

```latte
{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}`.

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