Nette Documentation Preview

syntax
Typ System
**********

<div class=perex>

Ein Typsystem ist das A und O bei der Entwicklung von robusten Anwendungen. Latte bietet Typunterstützung für Vorlagen. Zu wissen, welcher Daten- oder Objekttyp jede Variable ist, ermöglicht

- IDE korrektes Autocomplete (siehe [Integration und Plugins |recipes#Editors and IDE])
- statische Analyse zur Fehlererkennung

Zwei Punkte, die die Qualität und den Komfort der Entwicklung erheblich verbessern.

</div>

.[note]
Die deklarierten Typen sind informativ und Latte prüft sie derzeit nicht.

Wie fängt man an, Typen zu verwenden? Erstellen Sie eine Vorlagenklasse, z. B. `CatalogTemplateParameters`, die die übergebenen Parameter repräsentiert:

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

Fügen Sie dann das Tag `{templateType}` mit dem vollständigen Klassennamen (einschließlich des Namensraums) am Anfang der Vorlage ein. Dadurch wird festgelegt, dass in der Vorlage die Variablen `$langs` und `$products` mit den entsprechenden Typen vorhanden sind.
Sie können die Typen der lokalen Variablen auch mit den Tags [`{var}` |tags#var-default], `{varType}` und [`{define}` |template-inheritance#definitions].

Jetzt kann die IDE die Autovervollständigung korrekt durchführen.

Wie speichert man Arbeit? Wie kann man eine Vorlagenklasse oder `{varType}` Tags so einfach wie möglich schreiben? Indem man sie generieren lässt.
Das ist genau das, was die beiden Tags `{templatePrint}` und `{varPrint}` tun.
Wenn Sie eines dieser Tags in einer Vorlage platzieren, wird der Code der Klasse oder Vorlage anstelle der normalen Darstellung angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihr Projekt.


`{templateType}`
----------------
Die Typen der an die Vorlage übergebenen Parameter werden mit class deklariert:

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


`{varType}`
-----------
Wie kann man Variablentypen deklarieren? Verwenden Sie zu diesem Zweck das Tag `{varType}` für eine bestehende Variable, oder [`{var}` |tags#var-default]:

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


`{templatePrint}`
-----------------
Sie können diese Klasse auch mit dem Tag `{templatePrint}` erzeugen. Wenn Sie es an den Anfang der Vorlage setzen, wird der Code der Klasse anstelle der normalen Vorlage angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihr Projekt.


`{varPrint}`
------------
Das Tag `{varPrint}` spart Ihnen Zeit. Wenn Sie es in eine Vorlage einfügen, wird die Liste der `{varType}` Tags anstelle der normalen Darstellung angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihre Vorlage.

Unter `{varPrint}` werden lokale Variablen aufgelistet, die keine Vorlagenparameter sind. Wenn Sie alle Variablen auflisten möchten, verwenden Sie `{varPrint all}`.

Typ System

Ein Typsystem ist das A und O bei der Entwicklung von robusten Anwendungen. Latte bietet Typunterstützung für Vorlagen. Zu wissen, welcher Daten- oder Objekttyp jede Variable ist, ermöglicht

Zwei Punkte, die die Qualität und den Komfort der Entwicklung erheblich verbessern.

Die deklarierten Typen sind informativ und Latte prüft sie derzeit nicht.

Wie fängt man an, Typen zu verwenden? Erstellen Sie eine Vorlagenklasse, z. B. CatalogTemplateParameters, die die übergebenen Parameter repräsentiert:

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

Fügen Sie dann das Tag {templateType} mit dem vollständigen Klassennamen (einschließlich des Namensraums) am Anfang der Vorlage ein. Dadurch wird festgelegt, dass in der Vorlage die Variablen $langs und $products mit den entsprechenden Typen vorhanden sind. Sie können die Typen der lokalen Variablen auch mit den Tags {var}, {varType} und {define}.

Jetzt kann die IDE die Autovervollständigung korrekt durchführen.

Wie speichert man Arbeit? Wie kann man eine Vorlagenklasse oder {varType} Tags so einfach wie möglich schreiben? Indem man sie generieren lässt. Das ist genau das, was die beiden Tags {templatePrint} und {varPrint} tun. Wenn Sie eines dieser Tags in einer Vorlage platzieren, wird der Code der Klasse oder Vorlage anstelle der normalen Darstellung angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihr Projekt.

{templateType}

Die Typen der an die Vorlage übergebenen Parameter werden mit class deklariert:

{templateType MyApp\CatalogTemplateParameters}

{varType}

Wie kann man Variablentypen deklarieren? Verwenden Sie zu diesem Zweck das Tag {varType} für eine bestehende Variable, oder {var}:

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

{templatePrint}

Sie können diese Klasse auch mit dem Tag {templatePrint} erzeugen. Wenn Sie es an den Anfang der Vorlage setzen, wird der Code der Klasse anstelle der normalen Vorlage angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihr Projekt.

{varPrint}

Das Tag {varPrint} spart Ihnen Zeit. Wenn Sie es in eine Vorlage einfügen, wird die Liste der {varType} Tags anstelle der normalen Darstellung angezeigt. Wählen Sie dann einfach den Code aus und kopieren Sie ihn in Ihre Vorlage.

Unter {varPrint} werden lokale Variablen aufgelistet, die keine Vorlagenparameter sind. Wenn Sie alle Variablen auflisten möchten, verwenden Sie {varPrint all}.