アップグレード

バージョン 3.1 へのアップグレード

  • オートワイヤリングは、既定値のない nullable なパラメータに null を渡さなくなりました。引数を明示的に渡すか、パラメータに既定値を与えてください
  • @return アノテーションのサポートはなくなりました。戻り値の型を使うか、サービスの定義で type: を使って型を指定してください
  • キー dynamicimported に、classtype に改名されました
  • 省略した引数を表す記号が ... から _ に変わりました。たとえば MyService(_, 123) です
  • NEON ファイルでは、文字列の先頭の @ をエスケープする必要がなくなりました
  • 生成されるファクトリの定義の中の parameters キーは非推奨です
  • Nette\DI\Config\Loader::save() メソッドは非推奨です。設定の書き出しには Nette\DI\Config\Adapters\NeonAdapter::dump() を使ってください

バージョン 3.1 は移行のためのリリースです。新機能はもたらしませんが、のちに動きが変わるものすべてについて notice で警告します。記事 Nette DI 3.1: transition releaseをご覧ください。

バージョン 3.0 へのアップグレード

  • INI ファイルのサポートは削除されました
  • 疑問符を使って設定に PHP のコードを直接書く方法("$service->onError[] = ?"(...) など)は削除されました。代わりに配列の記法 '$onError[]' = [...] を使ってください
  • 設定ファイルでは class: PDO(...) ではなく factory: 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.neonconfig.local.neon の 2 つのファイルを使ってください
  • サービス定義の継承は非推奨です
  • Statement::setEntity() は非推奨です

バージョン 2.3 へのアップグレード

  • 設定ファイルの拡張のセクションの中にサービスを置くサポートは削除されました
  • 動的に追加される拡張のサポートは削除されました
  • サービスを動的に置き換える場合(removeService()addService() を使う場合)、新しいサービスはもとのものと同じインターフェースやクラスのインスタンスでなければなりません
バージョン: 3.x