mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-20 10:27:18 +08:00
153 lines
6.1 KiB
Markdown
153 lines
6.1 KiB
Markdown
# 後方互換性
|
|
|
|
私たちは `2.x.y.Z` のようなパッチリリースにおいては厳密に後方互換性を保持するように努めるとともに、
|
|
`2.x.Y` のようなマイナーリリースにおいても修正が必要となるような後方互換性の無い変更を避けるように努めています。
|
|
|
|
バージョン番号については [Yii バージョン規約](versions.md) を参照して下さい。
|
|
|
|
## 使用
|
|
|
|
### インターフェイス
|
|
|
|
ユースケース | 後方互換?
|
|
-------------|----------
|
|
インターフェイスのタイプヒント | 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 への記載が必須
|