Nette Documentation Preview

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


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

変更のほとんどは独自のコンポーネントを書く人にだけ関わり、ふつうのアプリケーションのコードには影響しません。詳しい経緯は[リリースのブログ記事 |https://blog.nette.org/en/nette-component-model-4-0]をご覧ください。

- `getComponents()` メソッドは `iterable` ではなく `array` を返すようになり、古い `$deep` と `$filterType` の引数は `Nette\DeprecatedException` を投げるようになりました。これらはバージョン 3.1 で見出しから消えていましたが、実行時には今まで動いていました。部分木全体には `getComponentTree()` を、型で絞るなら `array_filter()` と組み合わせて使ってください。
- 取り付けの知らせは上から下へ届くようになりました。親の `$attached` のコールバックが子のものより先に走るので、親は自分の状態を整えたり、子が処理される前にそれを取り除いたりできます。取り外しの順序は変わりません(子が先です)。
- 上書きできた `attached()` と `detached()` のメソッドは取り除かれました。代わりに `monitor($type, $attached, $detached)` でコールバックを登録してください。
- `Component` クラスはもう `Nette\SmartObject` のトレイトを使わないので、基底のクラスからマジックによるプロパティのアクセスはなくなりました(`Control` と `BaseControl` は自分でそのトレイトを足します)。
- 非推奨だった `NAME_SEPARATOR` の定数は取り除かれました。バージョン 3.0.3 からある `NameSeparator` を使ってください。


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

`Nette\ComponentModel\Component` のコンストラクタは何年も使われておらず、バージョン 3.0 で取り除かれました。これは後方互換を壊す変更です。コンポーネントやプレゼンターで親のコンストラクタを呼んでいるなら、その呼び出しを取り除かなければなりません。

アップグレード

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

変更のほとんどは独自のコンポーネントを書く人にだけ関わり、ふつうのアプリケーションのコードには影響しません。詳しい経緯はリリースのブログ記事をご覧ください。

  • getComponents() メソッドは iterable ではなく array を返すようになり、古い $deep$filterType の引数は Nette\DeprecatedException を投げるようになりました。これらはバージョン 3.1 で見出しから消えていましたが、実行時には今まで動いていました。部分木全体には getComponentTree() を、型で絞るなら array_filter() と組み合わせて使ってください。
  • 取り付けの知らせは上から下へ届くようになりました。親の $attached のコールバックが子のものより先に走るので、親は自分の状態を整えたり、子が処理される前にそれを取り除いたりできます。取り外しの順序は変わりません(子が先です)。
  • 上書きできた attached()detached() のメソッドは取り除かれました。代わりに monitor($type, $attached, $detached) でコールバックを登録してください。
  • Component クラスはもう Nette\SmartObject のトレイトを使わないので、基底のクラスからマジックによるプロパティのアクセスはなくなりました(ControlBaseControl は自分でそのトレイトを足します)。
  • 非推奨だった NAME_SEPARATOR の定数は取り除かれました。バージョン 3.0.3 からある NameSeparator を使ってください。

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

Nette\ComponentModel\Component のコンストラクタは何年も使われておらず、バージョン 3.0 で取り除かれました。これは後方互換を壊す変更です。コンポーネントやプレゼンターで親のコンストラクタを呼んでいるなら、その呼び出しを取り除かなければなりません。