アップグレード
バージョン 3.1 へのアップグレード
- オートワイヤリングは、既定値のない nullable なパラメータに
nullを渡さなくなりました。引数を明示的に渡すか、パラメータに既定値を与えてください @returnアノテーションのサポートはなくなりました。戻り値の型を使うか、サービスの定義でtype:を使って型を指定してください- キー
dynamicはimportedに、classはtypeに改名されました - 省略した引数を表す記号が
...から_に変わりました。たとえば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.neonとconfig.local.neonの 2 つのファイルを使ってください - サービス定義の継承は非推奨です
Statement::setEntity()は非推奨です
バージョン 2.3 へのアップグレード
- 設定ファイルの拡張のセクションの中にサービスを置くサポートは削除されました
- 動的に追加される拡張のサポートは削除されました
- サービスを動的に置き換える場合(
removeService()、addService()を使う場合)、新しいサービスはもとのものと同じインターフェースやクラスのインスタンスでなければなりません