アップグレード
バージョン 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
で取り除かれました。これは後方互換を壊す変更です。コンポーネントやプレゼンターで親のコンストラクタを呼んでいるなら、その呼び出しを取り除かなければなりません。