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
Version: 3.x