Nette Documentation Preview

syntax
Actualización
*************


Actualización a la versión 3.0
==============================

Nette 3.0 añade declaraciones de tipo a los parámetros y a los valores de retorno de los métodos. Si sobrescribe uno de esos métodos en una clase que hereda de Nette (por ejemplo, en un presenter o en un componente), debe añadir las mismas declaraciones de tipo, o PHP lanzará el error "Declaration must be compatible".

La interfaz `Nette\Application\IRouter` ha cambiado. El método `match()` devuelve ahora, y `constructUrl()` acepta, un array de parámetros en lugar de un objeto `Nette\Application\Request`.

Nette comprueba ahora que cada señal se envía desde el mismo origen (es decir, el mismo dominio y subdominio). Esta política del mismo origen es un mecanismo de seguridad crítico que ayuda a reducir los posibles vectores de ataque. Si quiere permitir otros orígenes, añada al método manejador la anotación `@crossOrigin`:

```php
/**
 * @crossOrigin
 */
public function handleXy(): void
{
}
```

Esto vale también para el envío de formularios. Si quiere permitir el envío desde otros orígenes, hágalo así:

```php
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
```

El constructor de `Nette\ComponentModel\Component` no se usaba desde hacía años y se eliminó en la versión 3.0. Es una ruptura de compatibilidad: si llama al constructor padre en un componente o presenter que hereda de `Nette\Application\UI\Presenter`, debe eliminar esa llamada.


Actualización a la versión 2.4
==============================

- `Route` y `SimpleRouter` generan ahora el mismo esquema HTTP/HTTPS con el que se accedió al sitio. Una ruta que exija un protocolo concreto se puede definir con el esquema, por ejemplo `Route('http://domain.cz/<presenter>')`.
- En los parámetros de tipo bool de los métodos render/action (es decir, con valor predeterminado true o false) y en los parámetros persistentes se distingue ahora entre `false` y `null`. Si el parámetro no está presente en la URL, su valor es ahora `null` (antes era `false`).
- La clase devuelta por `Presenter::getReflection()` ya no es descendiente de `Nette\Reflection\ClassType`, y `getReflection()->getMethod()` ya no es descendiente de `Nette\Reflection\Method`.
- La bandera `SECURED` y `Route::$defaultFlags` están obsoletas.


Actualización a la versión 2.3
==============================

- las rutas y los nombres de los presenters **distinguen mayúsculas y minúsculas**. Nette le avisa si usa mayúsculas o minúsculas incorrectas en el nombre de un presenter; por motivos de rendimiento no se comprueba la máscara de Route, así que verifíquela usted mismo.
- `Route::addStyle()` y `Route::setStyleProperty()` están obsoletos y ahora emiten `E_USER_DEPRECATED`.
- la extensión de plantilla `.phtml` y la sintaxis antigua de los enlaces ya no están admitidas.

Actualización

Actualización a la versión 3.0

Nette 3.0 añade declaraciones de tipo a los parámetros y a los valores de retorno de los métodos. Si sobrescribe uno de esos métodos en una clase que hereda de Nette (por ejemplo, en un presenter o en un componente), debe añadir las mismas declaraciones de tipo, o PHP lanzará el error „Declaration must be compatible“.

La interfaz Nette\Application\IRouter ha cambiado. El método match() devuelve ahora, y constructUrl() acepta, un array de parámetros en lugar de un objeto Nette\Application\Request.

Nette comprueba ahora que cada señal se envía desde el mismo origen (es decir, el mismo dominio y subdominio). Esta política del mismo origen es un mecanismo de seguridad crítico que ayuda a reducir los posibles vectores de ataque. Si quiere permitir otros orígenes, añada al método manejador la anotación @crossOrigin:

/**
 * @crossOrigin
 */
public function handleXy(): void
{
}

Esto vale también para el envío de formularios. Si quiere permitir el envío desde otros orígenes, hágalo así:

$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();

El constructor de Nette\ComponentModel\Component no se usaba desde hacía años y se eliminó en la versión 3.0. Es una ruptura de compatibilidad: si llama al constructor padre en un componente o presenter que hereda de Nette\Application\UI\Presenter, debe eliminar esa llamada.

Actualización a la versión 2.4

  • Route y SimpleRouter generan ahora el mismo esquema HTTP/HTTPS con el que se accedió al sitio. Una ruta que exija un protocolo concreto se puede definir con el esquema, por ejemplo Route('http://domain.cz/<presenter>').
  • En los parámetros de tipo bool de los métodos render/action (es decir, con valor predeterminado true o false) y en los parámetros persistentes se distingue ahora entre false y null. Si el parámetro no está presente en la URL, su valor es ahora null (antes era false).
  • La clase devuelta por Presenter::getReflection() ya no es descendiente de Nette\Reflection\ClassType, y getReflection()->getMethod() ya no es descendiente de Nette\Reflection\Method.
  • La bandera SECURED y Route::$defaultFlags están obsoletas.

Actualización a la versión 2.3

  • las rutas y los nombres de los presenters distinguen mayúsculas y minúsculas. Nette le avisa si usa mayúsculas o minúsculas incorrectas en el nombre de un presenter; por motivos de rendimiento no se comprueba la máscara de Route, así que verifíquela usted mismo.
  • Route::addStyle() y Route::setStyleProperty() están obsoletos y ahora emiten E_USER_DEPRECATED.
  • la extensión de plantilla .phtml y la sintaxis antigua de los enlaces ya no están admitidas.