Nette Documentation Preview

syntax
アップグレード
********


バージョン 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: を使って型を指定してください
  • キー 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() を使う場合)、新しいサービスはもとのものと同じインターフェースやクラスのインスタンスでなければなりません