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