コンテンツにスキップ

後方互換性

私たちは 2.x.y.Z のようなパッチ・リリースにおいては厳密に後方互換性を保持するように努めるとともに、 2.x.Y のようなマイナー・リリースにおいても修正が必要となるような後方互換性の無い変更を避けるように努めています。

バージョン番号については Yii バージョン規約 を参照して下さい。

ユース・ケース後方互換?
インタフェイスのタイプ・ヒントYes
インタフェイス・メソッドの呼び出しYes
インタフェイスの実装における …
メソッドの実装Yes
実装済みメソッドへの引数の追加Yes
引数のデフォルト値の追加Yes
ユース・ケース後方互換?
クラスのタイプ・ヒントYes
新しいインスタンスの作成Yes
クラスの拡張Yes
パブリック・プロパティへのアクセスYes
パブリック・メソッドの呼び出しYes
クラスの拡張における …
プロテクト・プロパティへのアクセスYes
プロテクト・メソッドの呼び出しYes
パブリック・プロパティのオーバーライドYes
プロテクト・プロパティのオーバーライドYes
パブリック・メソッドのオーバーライドYes
プロテクト・メソッドのオーバーライドYes
新しいプロパティの追加No
新しいメソッドの追加No
オーバーライドされたメソッドへの引数の追加Yes
引数のデフォルト値の追加Yes
プライベート・メソッドの呼び出し(リフレクション経由)No
プライベート・プロパティへのアクセス(リフレクション経由)No
変更のタイプ後方互換?
削除No
名前または名前空間の変更No
親のインタフェイスの追加新しいメソッドが追加されなければ Yes
親のインタフェイスの削除No
インタフェイス・メソッド
メソッドの追加No
メソッドの削除No
名前の変更No
親のインタフェイスへの移動Yes
デフォルト値を持たない引数の追加No
デフォルト値を持つ引数の追加No
引数の削除Yes (末尾の一つまたは複数の引数のみ)
引数のデフォルト値の追加No
引数のデフォルト値の削除No
引数のタイプ・ヒントの追加No
引数のタイプ・ヒントの削除No
引数の型の変更No
戻り値の型の変更No
定数
定数の追加Yes
定数の削除No
定数の値の変更シリアライズされる可能性のあるオブジェクトを除いて Yes。UPGRADE.md への記載が必須
変更のタイプ後方互換?
削除No
final への変更No
abstract への変更No
名前または名前空間の変更No
親クラスの変更Yes ただし元の親クラスは祖先クラス(祖父母クラスなど)として残らなければならない
インタフェイスの追加Yes
インタフェイスの削除No
パブリック・プロパティ
パブリック・プロパティの追加Yes
パブリック・プロパティの削除No
可視性の低減No
親クラスへの移動Yes
プロテクト・プロパティ
プロテクト・プロパティの追加Yes
プロテクト・プロパティの削除No
可視性の低減No
親クラスへの移動Yes
プライベート・プロパティ
プライベート・プロパティの追加Yes
プライベート・プロパティの削除Yes
コンストラクタ
コンストラクタの削除No
パブリック・コンストラクタの可視性低減No
プロテクト・コンストラクタの可視性低減No
親クラスへの移動Yes
パブリック・メソッド
パブリック・メソッドの追加Yes
パブリック・メソッドの削除No
名前の変更No
可視性の低減No
親クラスへの移動Yes
デフォルト値を持たない引数の追加No
デフォルト値を持つ引数の追加No
引数の削除Yes (末尾の一つまたは複数の引数のみ)
引数のデフォルト値の追加No
引数のデフォルト値の削除No
引数のタイプ・ヒントの追加No
引数のタイプ・ヒントの削除No
引数の型の変更No
戻り値の型の変更No
プロテクト・メソッド
プロテクト・メソッドの追加Yes
プロテクト・メソッドの削除No
名前の変更No
可視性の低減No
親クラスへの移動Yes
デフォルト値を持たない引数の追加No
デフォルト値を持つ引数の追加No
引数の削除Yes (末尾の一つまたは複数の引数のみ)
引数のデフォルト値の追加No
引数のデフォルト値の削除No
引数のタイプ・ヒントの追加No
引数のタイプ・ヒントの削除No
引数の型の変更No
戻り値の型の変更No
プライベート・メソッド
プライベート・メソッドの追加Yes
プライベート・メソッドの削除Yes
名前の変更Yes
デフォルト値を持たない引数の追加Yes
デフォルト値を持つ引数の追加Yes
引数の削除Yes
引数のデフォルト値の追加Yes
引数のデフォルト値の削除Yes
引数のタイプ・ヒントの追加Yes
引数のタイプ・ヒントの削除Yes
引数の方の変更Yes
戻り値の型の変更Yes
スタティック・メソッド
非スタティックなメソッドのスタティックへの変更No
スタティックなメソッドの非スタティックへの変更No
定数
定数の追加Yes
定数の削除No
定数の値の変更シリアライズされる可能性のあるオブジェクトを除いて Yes。UPGRADE.md への記載が必須