Nette Documentation Preview

syntax
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.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