Nette Documentation Preview

syntax
Sistema de tipos
****************

<div class=perex>

El sistema de tipos es lo principal para el desarrollo de aplicaciones robustas. Latte aporta soporte de tipos a las plantillas. Saber que tipo de dato u objeto es cada variable permite

- IDE autocompletar correctamente (ver [integración y plugins |recipes#Editors and IDE])
- análisis estático para detectar errores

Dos puntos que mejoran notablemente la calidad y la comodidad del desarrollo.

</div>

.[note]
Los tipos declarados son informativos y Latte no los comprueba en este momento.

¿Cómo empezar a utilizar los tipos? Cree una clase de plantilla, por ejemplo `CatalogTemplateParameters`, que represente los parámetros pasados:

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

A continuación, inserte la etiqueta `{templateType}` con el nombre completo de la clase (incluyendo el espacio de nombres) al principio de la plantilla. Esto define que habrá variables `$langs` y `$products` en la plantilla incluyendo los tipos correspondientes.
También puede especificar los tipos de las variables locales utilizando las etiquetas [`{var}` |tags#var-default]`{varType}` y [`{define}` |template-inheritance#definitions].

Ahora el IDE puede autocompletar correctamente.

¿Cómo guardar el trabajo? ¿Cómo escribir una clase de plantilla o etiquetas `{varType}` lo más fácilmente posible? Consigue que se generen.
Eso es precisamente lo que hacen el par de etiquetas `{templatePrint}` y `{varPrint}`.
Si colocas una de estas etiquetas en una plantilla, se mostrará el código de la clase o plantilla en lugar de la representación normal. A continuación, sólo tiene que seleccionar y copiar el código en su proyecto.


`{templateType}`
----------------
Los tipos de parámetros pasados a la plantilla se declaran utilizando class:

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


`{varType}`
-----------
¿Cómo declarar tipos de variables? Para ello, utilice la etiqueta `{varType}` para una variable existente, o bien [`{var}` |tags#var-default]:

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


`{templatePrint}`
-----------------
También puede generar esta clase utilizando la etiqueta `{templatePrint}`. Si la colocas al principio de la plantilla, aparecerá el código de la clase en lugar de la plantilla normal. A continuación, sólo tiene que seleccionar y copiar el código en su proyecto.


`{varPrint}`
------------
La etiqueta `{varPrint}` le ahorra tiempo. Si la coloca en una plantilla, aparecerá la lista de etiquetas `{varType}` en lugar de la representación normal. A continuación, sólo tiene que seleccionar y copiar el código en su plantilla.

`{varPrint}` enumera las variables locales que no son parámetros de la plantilla. Si desea listar todas las variables, utilice `{varPrint all}`.

Sistema de tipos

El sistema de tipos es lo principal para el desarrollo de aplicaciones robustas. Latte aporta soporte de tipos a las plantillas. Saber que tipo de dato u objeto es cada variable permite

Dos puntos que mejoran notablemente la calidad y la comodidad del desarrollo.

Los tipos declarados son informativos y Latte no los comprueba en este momento.

¿Cómo empezar a utilizar los tipos? Cree una clase de plantilla, por ejemplo CatalogTemplateParameters, que represente los parámetros pasados:

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

A continuación, inserte la etiqueta {templateType} con el nombre completo de la clase (incluyendo el espacio de nombres) al principio de la plantilla. Esto define que habrá variables $langs y $products en la plantilla incluyendo los tipos correspondientes. También puede especificar los tipos de las variables locales utilizando las etiquetas {var}{varType} y {define}.

Ahora el IDE puede autocompletar correctamente.

¿Cómo guardar el trabajo? ¿Cómo escribir una clase de plantilla o etiquetas {varType} lo más fácilmente posible? Consigue que se generen. Eso es precisamente lo que hacen el par de etiquetas {templatePrint} y {varPrint}. Si colocas una de estas etiquetas en una plantilla, se mostrará el código de la clase o plantilla en lugar de la representación normal. A continuación, sólo tiene que seleccionar y copiar el código en su proyecto.

{templateType}

Los tipos de parámetros pasados a la plantilla se declaran utilizando class:

{templateType MyApp\CatalogTemplateParameters}

{varType}

¿Cómo declarar tipos de variables? Para ello, utilice la etiqueta {varType} para una variable existente, o bien {var}:

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

{templatePrint}

También puede generar esta clase utilizando la etiqueta {templatePrint}. Si la colocas al principio de la plantilla, aparecerá el código de la clase en lugar de la plantilla normal. A continuación, sólo tiene que seleccionar y copiar el código en su proyecto.

{varPrint}

La etiqueta {varPrint} le ahorra tiempo. Si la coloca en una plantilla, aparecerá la lista de etiquetas {varType} en lugar de la representación normal. A continuación, sólo tiene que seleccionar y copiar el código en su plantilla.

{varPrint} enumera las variables locales que no son parámetros de la plantilla. Si desea listar todas las variables, utilice {varPrint all}.