Обновление

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