Aktualizacja
************
Aktualizacja do wersji 3.1
==========================
- autowiring nie przekazuje już `null` do parametru nullable bez wartości domyślnej; przekaż argument jawnie albo nadaj parametrowi wartość domyślną
- wsparcie dla adnotacji `@return` zostało usunięte; użyj typu zwracanego albo podaj typ w definicji usługi przez `type:`
- klucz `dynamic` zmienił nazwę na `imported`, a `class` na `type`
- symbol pominiętego argumentu zmienił się z `...` na `_`, np. `MyService(_, 123)`
- w plikach NEON znaku `@` na początku stringa nie trzeba już escapować
- klucz `parameters` wewnątrz definicji generowanych fabryk jest przestarzały
- metoda `Nette\DI\Config\Loader::save()` jest przestarzała; eksportuj konfigurację przez `Nette\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 |https://blog.nette.org/en/nette-di-3-1-transition-release].
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(...)` zamiast `class: PDO(...)`
- tag `nette.presenter` nie 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.neon` i `config.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
Aktualizacja
Aktualizacja do wersji 3.1
- autowiring nie przekazuje już
null do parametru nullable bez wartości domyślnej; przekaż argument jawnie albo
nadaj parametrowi wartość domyślną
- wsparcie dla adnotacji
@return zostało usunięte; użyj typu zwracanego albo podaj typ w definicji usługi
przez type:
- klucz
dynamic zmienił nazwę na imported, a class na type
- symbol pominiętego argumentu zmienił się z
... na _, np. MyService(_, 123)
- w plikach NEON znaku
@ na początku stringa nie trzeba już escapować
- klucz
parameters wewnątrz definicji generowanych fabryk jest przestarzały
- metoda
Nette\DI\Config\Loader::save() jest przestarzała; eksportuj konfigurację
przez Nette\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(...) zamiast class: PDO(...)
- tag
nette.presenter nie 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.neon i config.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