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