Nette Documentation Preview

syntax
Upgrade
*******


Upgrade auf Version 3.1
=======================

- das Autowiring übergibt einem nullable Parameter ohne Standardwert nicht mehr `null`; übergeben Sie das Argument ausdrücklich oder geben Sie dem Parameter einen Standardwert
- die Unterstützung der Annotation `@return` wurde eingestellt; verwenden Sie einen Rückgabetyp oder geben Sie den Typ in der Service-Definition über `type:` an
- der Schlüssel `dynamic` wurde in `imported` und `class` in `type` umbenannt
- das Symbol für ein weggelassenes Argument hat sich von `...` zu `_` geändert, etwa `MyService(_, 123)`
- in NEON-Dateien muss das Zeichen `@` am Anfang eines Strings nicht mehr escapt werden
- der Schlüssel `parameters` innerhalb der Definitionen generierter Factories ist veraltet
- die Methode `Nette\DI\Config\Loader::save()` ist veraltet; exportieren Sie die Konfiguration über `Nette\DI\Config\Adapters\NeonAdapter::dump()`

Version 3.1 ist eine Übergangsversion: Sie bringt keine neuen Fähigkeiten, warnt aber mit Notices vor allem, was später anders funktionieren wird. Siehe den Artikel [Nette DI 3.1: transition release |https://blog.nette.org/en/nette-di-3-1-transition-release].


Upgrade auf Version 3.0
=======================

- die Unterstützung für INI-Dateien wurde entfernt
- das direkte Schreiben von PHP-Code in die Konfiguration über Fragezeichen (etwa `"$service->onError[] = ?"(...)`) wurde entfernt; verwenden Sie stattdessen die Array-Syntax `'$onError[]' = [...]`
- verwenden Sie in Konfigurationsdateien `factory: PDO(...)` statt `class: PDO(...)`
- der Tag `nette.presenter` wird für Presenter nicht mehr verwendet


Für Autoren von Compiler-Extensions
-----------------------------------

Während Nette 2.4 intern jeden Service als `Nette\DI\ServiceDefinition` beschrieb, gibt es jetzt mehrere Typen von Definitionen: `Nette\DI\Definitions\ImportedDefinition` für importierte (dynamische) Services, `Nette\DI\Definitions\FactoryDefinition` für generierte Factories auf Basis von Interfaces, `Nette\DI\Definitions\AccessorDefinition` für generierte Accessors und `Nette\DI\Definitions\ServiceDefinition` für gewöhnliche Services.

Neben `ContainerBuilder::addDefinition()` gibt es deshalb mehrere weitere Methoden, um eine neue Definition anzulegen: `addFactoryDefinition()`, `addAccessorDefinition()` und `addImportedDefinition()`.


Upgrade auf Version 2.4
=======================

- Abschnitte der Konfiguration (etwa production, development) in einer einzigen Konfigurationsdatei sind veraltet; verwenden Sie das Paar `config.neon` und `config.local.neon`
- das Erben von Service-Definitionen ist veraltet
- `Statement::setEntity()` ist veraltet


Upgrade auf Version 2.3
=======================

- die Unterstützung dafür, Services innerhalb des Abschnitts einer Extension in der Konfigurationsdatei abzulegen, wurde entfernt
- die Unterstützung dynamisch hinzugefügter Extensions wurde entfernt
- beim dynamischen Ersetzen eines Services (über `removeService()`, `addService()`) muss der neue Service eine Instanz desselben Interfaces bzw. derselben Klasse wie der ursprüngliche sein

Upgrade

Upgrade auf Version 3.1

  • das Autowiring übergibt einem nullable Parameter ohne Standardwert nicht mehr null; übergeben Sie das Argument ausdrücklich oder geben Sie dem Parameter einen Standardwert
  • die Unterstützung der Annotation @return wurde eingestellt; verwenden Sie einen Rückgabetyp oder geben Sie den Typ in der Service-Definition über type: an
  • der Schlüssel dynamic wurde in imported und class in type umbenannt
  • das Symbol für ein weggelassenes Argument hat sich von ... zu _ geändert, etwa MyService(_, 123)
  • in NEON-Dateien muss das Zeichen @ am Anfang eines Strings nicht mehr escapt werden
  • der Schlüssel parameters innerhalb der Definitionen generierter Factories ist veraltet
  • die Methode Nette\DI\Config\Loader::save() ist veraltet; exportieren Sie die Konfiguration über Nette\DI\Config\Adapters\NeonAdapter::dump()

Version 3.1 ist eine Übergangsversion: Sie bringt keine neuen Fähigkeiten, warnt aber mit Notices vor allem, was später anders funktionieren wird. Siehe den Artikel Nette DI 3.1: transition release.

Upgrade auf Version 3.0

  • die Unterstützung für INI-Dateien wurde entfernt
  • das direkte Schreiben von PHP-Code in die Konfiguration über Fragezeichen (etwa "$service->onError[] = ?"(...)) wurde entfernt; verwenden Sie stattdessen die Array-Syntax '$onError[]' = [...]
  • verwenden Sie in Konfigurationsdateien factory: PDO(...) statt class: PDO(...)
  • der Tag nette.presenter wird für Presenter nicht mehr verwendet

Für Autoren von Compiler-Extensions

Während Nette 2.4 intern jeden Service als Nette\DI\ServiceDefinition beschrieb, gibt es jetzt mehrere Typen von Definitionen: Nette\DI\Definitions\ImportedDefinition für importierte (dynamische) Services, Nette\DI\Definitions\FactoryDefinition für generierte Factories auf Basis von Interfaces, Nette\DI\Definitions\AccessorDefinition für generierte Accessors und Nette\DI\Definitions\ServiceDefinition für gewöhnliche Services.

Neben ContainerBuilder::addDefinition() gibt es deshalb mehrere weitere Methoden, um eine neue Definition anzulegen: addFactoryDefinition(), addAccessorDefinition() und addImportedDefinition().

Upgrade auf Version 2.4

  • Abschnitte der Konfiguration (etwa production, development) in einer einzigen Konfigurationsdatei sind veraltet; verwenden Sie das Paar config.neon und config.local.neon
  • das Erben von Service-Definitionen ist veraltet
  • Statement::setEntity() ist veraltet

Upgrade auf Version 2.3

  • die Unterstützung dafür, Services innerhalb des Abschnitts einer Extension in der Konfigurationsdatei abzulegen, wurde entfernt
  • die Unterstützung dynamisch hinzugefügter Extensions wurde entfernt
  • beim dynamischen Ersetzen eines Services (über removeService(), addService()) muss der neue Service eine Instanz desselben Interfaces bzw. derselben Klasse wie der ursprüngliche sein