Nette Documentation Preview

syntax
Обновление
**********


Обновление до версии 3.1
========================

- autowiring больше не передаёт `null` в nullable-параметр без значения по умолчанию; передайте аргумент явно или задайте параметру значение по умолчанию
- поддержка аннотации `@return` убрана; используйте тип возвращаемого значения или укажите тип в определении сервиса через `type:`
- ключ `dynamic` переименован в `imported`, а `class` в `type`
- обозначение пропущенного аргумента изменилось с `...` на `_`, например `MyService(_, 123)`
- в файлах NEON символ `@` в начале строки больше не нужно экранировать
- ключ `parameters` внутри определений генерируемых фабрик объявлен устаревшим
- метод `Nette\DI\Config\Loader::save()` объявлен устаревшим; экспортируйте конфигурацию через `Nette\DI\Config\Adapters\NeonAdapter::dump()`

Версия 3.1 - переходная: она не приносит новых возможностей, но предупреждает уведомлениями обо всём, что позже будет работать иначе. См. статью [Nette DI 3.1: переходный выпуск |https://blog.nette.org/en/nette-di-3-1-transition-release].


Обновление до версии 3.0
========================

- поддержка файлов INI убрана
- прямая запись PHP-кода в конфигурацию через вопросительные знаки (например, `"$service->onError[] = ?"(...)`) убрана; используйте вместо этого запись массивом `'$onError[]' = [...]`
- в конфигурационных файлах используйте `factory: PDO(...)` вместо `class: PDO(...)`
- тег `nette.presenter` для презентеров больше не используется


Для авторов расширений компилятора
----------------------------------

В Nette 2.4 каждый сервис внутренне описывался как `Nette\DI\ServiceDefinition`, а теперь есть несколько типов определений: `Nette\DI\Definitions\ImportedDefinition` для импортированных (динамических) сервисов, `Nette\DI\Definitions\FactoryDefinition` для генерируемых фабрик на основе интерфейсов, `Nette\DI\Definitions\AccessorDefinition` для генерируемых аксессоров и `Nette\DI\Definitions\ServiceDefinition` для обычных сервисов.

Поэтому, помимо `ContainerBuilder::addDefinition()`, для создания нового определения есть несколько других методов: `addFactoryDefinition()`, `addAccessorDefinition()` и `addImportedDefinition()`.


Обновление до версии 2.4
========================

- секции конфигурации (например, production, development) в одном конфигурационном файле объявлены устаревшими; используйте пару файлов `config.neon` и `config.local.neon`
- наследование определений сервисов объявлено устаревшим
- `Statement::setEntity()` объявлен устаревшим


Обновление до версии 2.3
========================

- поддержка размещения сервисов внутри секции расширения в конфигурационном файле убрана
- поддержка динамически добавляемых расширений убрана
- при динамической замене сервиса (через `removeService()`, `addService()`) новый сервис должен быть экземпляром того же интерфейса или класса, что и исходный

Обновление

Обновление до версии 3.1

  • autowiring больше не передаёт null в nullable-параметр без значения по умолчанию; передайте аргумент явно или задайте параметру значение по умолчанию
  • поддержка аннотации @return убрана; используйте тип возвращаемого значения или укажите тип в определении сервиса через type:
  • ключ dynamic переименован в imported, а class в type
  • обозначение пропущенного аргумента изменилось с ... на _, например MyService(_, 123)
  • в файлах NEON символ @ в начале строки больше не нужно экранировать
  • ключ parameters внутри определений генерируемых фабрик объявлен устаревшим
  • метод Nette\DI\Config\Loader::save() объявлен устаревшим; экспортируйте конфигурацию через Nette\DI\Config\Adapters\NeonAdapter::dump()

Версия 3.1 – переходная: она не приносит новых возможностей, но предупреждает уведомлениями обо всём, что позже будет работать иначе. См. статью Nette DI 3.1: переходный выпуск.

Обновление до версии 3.0

  • поддержка файлов INI убрана
  • прямая запись PHP-кода в конфигурацию через вопросительные знаки (например, "$service->onError[] = ?"(...)) убрана; используйте вместо этого запись массивом '$onError[]' = [...]
  • в конфигурационных файлах используйте factory: PDO(...) вместо class: PDO(...)
  • тег nette.presenter для презентеров больше не используется

Для авторов расширений компилятора

В Nette 2.4 каждый сервис внутренне описывался как Nette\DI\ServiceDefinition, а теперь есть несколько типов определений: Nette\DI\Definitions\ImportedDefinition для импортированных (динамических) сервисов, Nette\DI\Definitions\FactoryDefinition для генерируемых фабрик на основе интерфейсов, Nette\DI\Definitions\AccessorDefinition для генерируемых аксессоров и Nette\DI\Definitions\ServiceDefinition для обычных сервисов.

Поэтому, помимо ContainerBuilder::addDefinition(), для создания нового определения есть несколько других методов: addFactoryDefinition(), addAccessorDefinition() и addImportedDefinition().

Обновление до версии 2.4

  • секции конфигурации (например, production, development) в одном конфигурационном файле объявлены устаревшими; используйте пару файлов config.neon и config.local.neon
  • наследование определений сервисов объявлено устаревшим
  • Statement::setEntity() объявлен устаревшим

Обновление до версии 2.3

  • поддержка размещения сервисов внутри секции расширения в конфигурационном файле убрана
  • поддержка динамически добавляемых расширений убрана
  • при динамической замене сервиса (через removeService(), addService()) новый сервис должен быть экземпляром того же интерфейса или класса, что и исходный