アップグレード
*******
バージョン 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 |https://blog.nette.org/en/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()` を使う場合)、新しいサービスはもとのものと同じインターフェースやクラスのインスタンスでなければなりません
アップグレード
バージョン 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()
を使う場合)、新しいサービスはもとのものと同じインターフェースやクラスのインスタンスでなければなりません