Nette Documentation Preview

syntax
Aggiornamento
*************


Aggiornamento alla versione 3.0
===============================

Nette 3.0 aggiunge le dichiarazioni di tipo ai parametri e ai valori di ritorno dei metodi. Se sovrascrivete un metodo del genere in una classe che eredita da Nette (per esempio in un presenter o in un componente), dovete aggiungere le stesse dichiarazioni di tipo, altrimenti PHP emette l'errore "Declaration must be compatible".

L'interfaccia `Nette\Application\IRouter` è cambiata. Il metodo `match()` ora restituisce, e `constructUrl()` accetta, un array di parametri invece di un oggetto `Nette\Application\Request`.

Nette controlla ora che ogni segnale venga inviato dalla stessa origine (cioè dallo stesso dominio e sottodominio). Questa same-origin policy è un meccanismo di sicurezza essenziale, che aiuta a ridurre i possibili vettori di attacco. Se volete permettere altre origini, aggiungete al metodo handler l'annotazione `@crossOrigin`:

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

Lo stesso vale per l'invio dei form. Se volete permetterne l'invio da altre origini, procedete così:

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

Il costruttore di `Nette\ComponentModel\Component` non veniva usato da anni ed è stato rimosso nella versione 3.0. È una rottura di compatibilità: se in un componente o in un presenter che eredita da `Nette\Application\UI\Presenter` chiamate il costruttore genitore, dovete rimuovere la chiamata.


Aggiornamento alla versione 2.4
===============================

- `Route` e `SimpleRouter` generano ora lo stesso schema HTTP/HTTPS con cui si è acceduto al sito. Una route che richiede un protocollo specifico si può definire con lo schema, per esempio `Route('http://domain.cz/<presenter>')`.
- Per i parametri di tipo bool dei metodi render/action (cioè con valore predefinito true o false) e per i parametri persistenti si distinguono ora `false` e `null`. Se il parametro non è presente nell'URL, il suo valore è ora `null` (prima era `false`).
- La classe restituita da `Presenter::getReflection()` non è più discendente di `Nette\Reflection\ClassType` e `getReflection()->getMethod()` non è più discendente di `Nette\Reflection\Method`.
- Il flag `SECURED` e `Route::$defaultFlags` sono deprecati.


Aggiornamento alla versione 2.3
===============================

- le route e i nomi dei presenter fanno **distinzione tra maiuscole e minuscole**. Nette vi avvisa se usate le maiuscole sbagliate nel nome di un presenter; per motivi di prestazioni la maschera della Route non viene controllata, quindi verificatela manualmente.
- `Route::addStyle()` e `Route::setStyleProperty()` sono deprecati ed emettono ora `E_USER_DEPRECATED`.
- l'estensione dei template `.phtml` e la vecchia sintassi dei link non sono più supportate.

Aggiornamento

Aggiornamento alla versione 3.0

Nette 3.0 aggiunge le dichiarazioni di tipo ai parametri e ai valori di ritorno dei metodi. Se sovrascrivete un metodo del genere in una classe che eredita da Nette (per esempio in un presenter o in un componente), dovete aggiungere le stesse dichiarazioni di tipo, altrimenti PHP emette l'errore „Declaration must be compatible“.

L'interfaccia Nette\Application\IRouter è cambiata. Il metodo match() ora restituisce, e constructUrl() accetta, un array di parametri invece di un oggetto Nette\Application\Request.

Nette controlla ora che ogni segnale venga inviato dalla stessa origine (cioè dallo stesso dominio e sottodominio). Questa same-origin policy è un meccanismo di sicurezza essenziale, che aiuta a ridurre i possibili vettori di attacco. Se volete permettere altre origini, aggiungete al metodo handler l'annotazione @crossOrigin:

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

Lo stesso vale per l'invio dei form. Se volete permetterne l'invio da altre origini, procedete così:

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

Il costruttore di Nette\ComponentModel\Component non veniva usato da anni ed è stato rimosso nella versione 3.0. È una rottura di compatibilità: se in un componente o in un presenter che eredita da Nette\Application\UI\Presenter chiamate il costruttore genitore, dovete rimuovere la chiamata.

Aggiornamento alla versione 2.4

  • Route e SimpleRouter generano ora lo stesso schema HTTP/HTTPS con cui si è acceduto al sito. Una route che richiede un protocollo specifico si può definire con lo schema, per esempio Route('http://domain.cz/<presenter>').
  • Per i parametri di tipo bool dei metodi render/action (cioè con valore predefinito true o false) e per i parametri persistenti si distinguono ora false e null. Se il parametro non è presente nell'URL, il suo valore è ora null (prima era false).
  • La classe restituita da Presenter::getReflection() non è più discendente di Nette\Reflection\ClassType e getReflection()->getMethod() non è più discendente di Nette\Reflection\Method.
  • Il flag SECURED e Route::$defaultFlags sono deprecati.

Aggiornamento alla versione 2.3

  • le route e i nomi dei presenter fanno distinzione tra maiuscole e minuscole. Nette vi avvisa se usate le maiuscole sbagliate nel nome di un presenter; per motivi di prestazioni la maschera della Route non viene controllata, quindi verificatela manualmente.
  • Route::addStyle() e Route::setStyleProperty() sono deprecati ed emettono ora E_USER_DEPRECATED.
  • l'estensione dei template .phtml e la vecchia sintassi dei link non sono più supportate.