Nette Documentation Preview

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


Aggiornamento alla versione 3.1
===============================

- l'autowiring non passa più `null` a un parametro nullable privo di valore predefinito; passate l'argomento esplicitamente oppure date al parametro un valore predefinito
- il supporto dell'annotazione `@return` è stato eliminato; usate un tipo di ritorno oppure indicate il tipo nella definizione del servizio con `type:`
- la chiave `dynamic` è stata rinominata in `imported` e `class` in `type`
- il simbolo per un argomento omesso è cambiato da `...` a `_`, per esempio `MyService(_, 123)`
- nei file NEON il carattere `@` all'inizio di una stringa non ha più bisogno di essere escapato
- la chiave `parameters` all'interno delle definizioni delle factory generate è deprecata
- il metodo `Nette\DI\Config\Loader::save()` è deprecato; esportate la configurazione con `Nette\DI\Config\Adapters\NeonAdapter::dump()`

La versione 3.1 è una versione di transizione: non porta nuove funzionalità, ma avvisa con dei notice di tutto ciò che in seguito funzionerà diversamente. Vedi l'articolo [Nette DI 3.1: transition release |https://blog.nette.org/en/nette-di-3-1-transition-release].


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

- il supporto dei file INI è stato rimosso
- la scrittura diretta di codice PHP nella configurazione tramite i punti interrogativi (per esempio `"$service->onError[] = ?"(...)`) è stata rimossa; usate invece la sintassi ad array `'$onError[]' = [...]`
- nei file di configurazione usate `factory: PDO(...)` invece di `class: PDO(...)`
- il tag `nette.presenter` non viene più usato per i presenter


Per gli autori di estensioni del compilatore
--------------------------------------------

Mentre Nette 2.4 descriveva internamente ogni servizio come `Nette\DI\ServiceDefinition`, ora esistono diversi tipi di definizione: `Nette\DI\Definitions\ImportedDefinition` per i servizi importati (dinamici), `Nette\DI\Definitions\FactoryDefinition` per le factory generate a partire da un'interfaccia, `Nette\DI\Definitions\AccessorDefinition` per gli accessor generati e `Nette\DI\Definitions\ServiceDefinition` per i servizi comuni.

Perciò, oltre a `ContainerBuilder::addDefinition()`, esistono altri metodi per creare una nuova definizione: `addFactoryDefinition()`, `addAccessorDefinition()` e `addImportedDefinition()`.


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

- le sezioni di configurazione (per esempio production, development) in un unico file di config sono deprecate; usate una coppia di file `config.neon` e `config.local.neon`
- l'ereditarietà delle definizioni dei servizi è deprecata
- `Statement::setEntity()` è deprecato


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

- il supporto per collocare i servizi dentro la sezione delle estensioni del file di configurazione è stato rimosso
- il supporto per le estensioni aggiunte dinamicamente è stato rimosso
- sostituendo dinamicamente un servizio (con `removeService()`, `addService()`), il nuovo servizio deve essere un'istanza della stessa interfaccia o classe dell'originale

Aggiornamento

Aggiornamento alla versione 3.1

  • l'autowiring non passa più null a un parametro nullable privo di valore predefinito; passate l'argomento esplicitamente oppure date al parametro un valore predefinito
  • il supporto dell'annotazione @return è stato eliminato; usate un tipo di ritorno oppure indicate il tipo nella definizione del servizio con type:
  • la chiave dynamic è stata rinominata in imported e class in type
  • il simbolo per un argomento omesso è cambiato da ... a _, per esempio MyService(_, 123)
  • nei file NEON il carattere @ all'inizio di una stringa non ha più bisogno di essere escapato
  • la chiave parameters all'interno delle definizioni delle factory generate è deprecata
  • il metodo Nette\DI\Config\Loader::save() è deprecato; esportate la configurazione con Nette\DI\Config\Adapters\NeonAdapter::dump()

La versione 3.1 è una versione di transizione: non porta nuove funzionalità, ma avvisa con dei notice di tutto ciò che in seguito funzionerà diversamente. Vedi l'articolo Nette DI 3.1: transition release.

Aggiornamento alla versione 3.0

  • il supporto dei file INI è stato rimosso
  • la scrittura diretta di codice PHP nella configurazione tramite i punti interrogativi (per esempio "$service->onError[] = ?"(...)) è stata rimossa; usate invece la sintassi ad array '$onError[]' = [...]
  • nei file di configurazione usate factory: PDO(...) invece di class: PDO(...)
  • il tag nette.presenter non viene più usato per i presenter

Per gli autori di estensioni del compilatore

Mentre Nette 2.4 descriveva internamente ogni servizio come Nette\DI\ServiceDefinition, ora esistono diversi tipi di definizione: Nette\DI\Definitions\ImportedDefinition per i servizi importati (dinamici), Nette\DI\Definitions\FactoryDefinition per le factory generate a partire da un'interfaccia, Nette\DI\Definitions\AccessorDefinition per gli accessor generati e Nette\DI\Definitions\ServiceDefinition per i servizi comuni.

Perciò, oltre a ContainerBuilder::addDefinition(), esistono altri metodi per creare una nuova definizione: addFactoryDefinition(), addAccessorDefinition() e addImportedDefinition().

Aggiornamento alla versione 2.4

  • le sezioni di configurazione (per esempio production, development) in un unico file di config sono deprecate; usate una coppia di file config.neonconfig.local.neon
  • l'ereditarietà delle definizioni dei servizi è deprecata
  • Statement::setEntity() è deprecato

Aggiornamento alla versione 2.3

  • il supporto per collocare i servizi dentro la sezione delle estensioni del file di configurazione è stato rimosso
  • il supporto per le estensioni aggiunte dinamicamente è stato rimosso
  • sostituendo dinamicamente un servizio (con removeService(), addService()), il nuovo servizio deve essere un'istanza della stessa interfaccia o classe dell'originale