Nette Documentation Preview

syntax
Sistem tipov
************

<div class=perex>

Sistem tipov je glavna stvar pri razvoju robustnih aplikacij. Latte prinaša podporo za tipe v predloge. Vedeti, kakšen tip podatkov ali predmetov je vsaka spremenljivka, omogoča

- IDE pravilno samodejno dopolnjevanje (glejte [integracijo in vtičnike |recipes#Editors and IDE])
- statična analiza za odkrivanje napak

Dve točki, ki bistveno izboljšata kakovost in udobje razvoja.

</div>

.[note]
Deklarirane vrste so informativne in jih Latte trenutno ne preverja.

Kako začeti uporabljati tipe? Ustvarite razred predloge, npr. `CatalogTemplateParameters`, ki predstavlja posredovane parametre:

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

Nato na začetek predloge vstavite oznako `{templateType}` s polnim imenom razreda (vključno z imenskim prostorom). To določa, da sta v predlogi spremenljivki `$langs` in `$products`, vključno z ustreznimi tipi.
Tipe lokalnih spremenljivk lahko določite tudi z uporabo oznak [`{var}` |tags#var-default], `{varType}` in [`{define}` |template-inheritance#definitions].

Zdaj lahko IDE pravilno samodejno dopolni spremenljivke.

Kako shraniti delo? Kako čim lažje napisati razred predloge ali oznake `{varType}`? Pridobite jih generirane.
Prav to počne par oznak `{templatePrint}` in `{varPrint}`.
Če eno od teh oznak namestite v predlogo, se namesto običajnega prikazovanja prikaže koda razreda ali predloge. Nato preprosto izberite in kopirajte kodo v svoj projekt.


`{templateType}`
----------------
Vrste parametrov, ki se posredujejo predlogi, so deklarirane z uporabo razreda:

```latte
{templateType MyApp\CatalogTemplateParameters}
```


`{varType}`
-----------
Kako deklarirati vrste spremenljivk? V ta namen uporabite oznako `{varType}` za obstoječo spremenljivko ali [`{var}` |tags#var-default]:

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


`{templatePrint}`
-----------------
Ta razred lahko ustvarite tudi z uporabo oznake `{templatePrint}`. Če jo postavite na začetek predloge, se namesto običajne predloge prikaže koda razreda. Nato preprosto izberite in kopirajte kodo v svoj projekt.


`{varPrint}`
------------
Oznaka `{varPrint}` vam prihrani čas. Če jo vstavite v predlogo, se namesto običajnega prikazovanja prikaže seznam oznak `{varType}`. Nato preprosto izberite in kopirajte kodo v predlogo.

Oznaka `{varPrint}` navaja lokalne spremenljivke, ki niso parametri predloge. Če želite seznam vseh spremenljivk, uporabite `{varPrint all}`.

Sistem tipov

Sistem tipov je glavna stvar pri razvoju robustnih aplikacij. Latte prinaša podporo za tipe v predloge. Vedeti, kakšen tip podatkov ali predmetov je vsaka spremenljivka, omogoča

Dve točki, ki bistveno izboljšata kakovost in udobje razvoja.

Deklarirane vrste so informativne in jih Latte trenutno ne preverja.

Kako začeti uporabljati tipe? Ustvarite razred predloge, npr. CatalogTemplateParameters, ki predstavlja posredovane parametre:

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

Nato na začetek predloge vstavite oznako {templateType} s polnim imenom razreda (vključno z imenskim prostorom). To določa, da sta v predlogi spremenljivki $langs in $products, vključno z ustreznimi tipi. Tipe lokalnih spremenljivk lahko določite tudi z uporabo oznak {var}, {varType} in {define}.

Zdaj lahko IDE pravilno samodejno dopolni spremenljivke.

Kako shraniti delo? Kako čim lažje napisati razred predloge ali oznake {varType}? Pridobite jih generirane. Prav to počne par oznak {templatePrint} in {varPrint}. Če eno od teh oznak namestite v predlogo, se namesto običajnega prikazovanja prikaže koda razreda ali predloge. Nato preprosto izberite in kopirajte kodo v svoj projekt.

{templateType}

Vrste parametrov, ki se posredujejo predlogi, so deklarirane z uporabo razreda:

{templateType MyApp\CatalogTemplateParameters}

{varType}

Kako deklarirati vrste spremenljivk? V ta namen uporabite oznako {varType} za obstoječo spremenljivko ali {var}:

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

{templatePrint}

Ta razred lahko ustvarite tudi z uporabo oznake {templatePrint}. Če jo postavite na začetek predloge, se namesto običajne predloge prikaže koda razreda. Nato preprosto izberite in kopirajte kodo v svoj projekt.

{varPrint}

Oznaka {varPrint} vam prihrani čas. Če jo vstavite v predlogo, se namesto običajnega prikazovanja prikaže seznam oznak {varType}. Nato preprosto izberite in kopirajte kodo v predlogo.

Oznaka {varPrint} navaja lokalne spremenljivke, ki niso parametri predloge. Če želite seznam vseh spremenljivk, uporabite {varPrint all}.