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
@returnwurde eingestellt; verwenden Sie einen Rückgabetyp oder geben Sie den Typ in der Service-Definition übertype:an - der Schlüssel
dynamicwurde inimportedundclassintypeumbenannt - das Symbol für ein weggelassenes Argument hat sich von
...zu_geändert, etwaMyService(_, 123) - in NEON-Dateien muss das Zeichen
@am Anfang eines Strings nicht mehr escapt werden - der Schlüssel
parametersinnerhalb der Definitionen generierter Factories ist veraltet - die Methode
Nette\DI\Config\Loader::save()ist veraltet; exportieren Sie die Konfiguration überNette\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(...)stattclass: PDO(...) - der Tag
nette.presenterwird 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.neonundconfig.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