Aktualizacja
Aktualizacja do wersji 3.1
- autowiring nie przekazuje już
nulldo parametru nullable bez wartości domyślnej; przekaż argument jawnie albo nadaj parametrowi wartość domyślną - wsparcie dla adnotacji
@returnzostało usunięte; użyj typu zwracanego albo podaj typ w definicji usługi przeztype: - klucz
dynamiczmienił nazwę naimported, aclassnatype - symbol pominiętego argumentu zmienił się z
...na_, np.MyService(_, 123) - w plikach NEON znaku
@na początku stringa nie trzeba już escapować - klucz
parameterswewnątrz definicji generowanych fabryk jest przestarzały - metoda
Nette\DI\Config\Loader::save()jest przestarzała; eksportuj konfigurację przezNette\DI\Config\Adapters\NeonAdapter::dump()
Wersja 3.1 jest wydaniem przejściowym: nie przynosi nowych funkcji, ale ostrzega notice'ami przed wszystkim, co później będzie działać inaczej. Zobacz artykuł Nette DI 3.1: wydanie przejściowe.
Aktualizacja do wersji 3.0
- wsparcie dla plików INI zostało usunięte
- usunięto bezpośrednie zapisywanie kodu PHP w konfiguracji za pomocą znaków zapytania (np.
"$service->onError[] = ?"(...)); użyj zamiast tego składni tablicowej'$onError[]' = [...] - w plikach konfiguracyjnych używaj
factory: PDO(...)zamiastclass: PDO(...) - tag
nette.presenternie jest już używany dla presenterów
Dla autorów rozszerzeń kompilatora
Podczas gdy Nette 2.4 wewnętrznie opisywało każdą usługę jako Nette\DI\ServiceDefinition, teraz istnieje
kilka typów definicji: Nette\DI\Definitions\ImportedDefinition dla usług importowanych (dynamicznych),
Nette\DI\Definitions\FactoryDefinition dla generowanych fabryk opartych na interfejsach,
Nette\DI\Definitions\AccessorDefinition dla generowanych akcesorów i
Nette\DI\Definitions\ServiceDefinition dla zwykłych usług.
Dlatego poza ContainerBuilder::addDefinition() istnieje kilka innych metod tworzenia nowej definicji:
addFactoryDefinition(), addAccessorDefinition() i addImportedDefinition().
Aktualizacja do wersji 2.4
- sekcje konfiguracyjne (np. production, development) w jednym pliku konfiguracyjnym są przestarzałe; użyj pary plików
config.neoniconfig.local.neon - dziedziczenie definicji usług jest przestarzałe
Statement::setEntity()jest przestarzałe
Aktualizacja do wersji 2.3
- usunięto wsparcie dla umieszczania usług wewnątrz sekcji rozszerzenia w pliku konfiguracyjnym
- usunięto wsparcie dla rozszerzeń dodawanych dynamicznie
- przy dynamicznym zastępowaniu usługi (przez
removeService(),addService()) nowa usługa musi być instancją tego samego interfejsu lub klasy co pierwotna