Обновление
**********
Обновление до версии 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()) новый сервис должен быть экземпляром того же интерфейса
или класса, что и исходный