操作
Bug(バグ) #2420
完了sfOpenPNEFriendAction に不要な記述が含まれている(#2190 のBP対応時のマージミス)
開始日:
2011-09-23
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)
説明
現象¶
sfOpenPNEFriendAction クラスに不要なメンバ定義が含まれたままになっている。具体的な記述内容は 0df5d28e の差分を見ると分かる。
sfOpenPNEFriendAction クラスは、OpenPNE-3.5.0 時点での修正 c1072092 により opFriendAction クラスに実装が移動しており、このクラス自体は後方互換性のために残している。
<?php /** * This class is for keeping backward compatibility. * * If you want to add new feature to this class, please add this to * the opFriendAction class, a parent class of this class. * And of course using this class is deprecated. You should not begin to * use this class, and you have to replace the code that is using this class. */ abstract class sfOpenPNEFriendAction extends opFriendAction { }
このクラスの実装は上記のように、クラスの継承のみで、メンバの定義は一切記述されていないべきである。
原因¶
- (a) 1個目のコミット 2009/12/22 (OpenPNE-3.3.2) 8772766f
- (b) 2個目のコミット 2009/12/28 (OpenPNE-3.3.2) 69a6e482
- (c) 別のコミット 2010/03/03 (OpenPNE-3.5.0) c1072092
- (d) 3個目のコミット 2010/12/28 (OpenPNE-3.7.0) 70cb7314
#368 のチケットでは上記の流れでコミットが行われている。
- (a), (b) では sfOpenPNEFriendAction クラスのメソッドを修正している
- (c) では sfOpenPNEFriendAction クラスを opFriendAction クラスに変更し、後方互換性(※)のために sfOpenPNEFriendAction クラスを残している
- ※ 新しいバージョンにおいて、古いバージョンの仕様を前提にコードが書けること(ここでは sfOpenPNEFriendAction クラスを使えるようにしておくこと)を意味する
- (d) では、 (c) の修正を前提に opFriendAction クラスのメソッドを修正している
つまり、 (a), (b) のコミットは (c) のコミットよりも前であることが前提となっている。
しかし #2190 では (c) のコミット後に (a), (b) をバックポートで取り込んでおり、逆に言えば (a), (b) のコミット後に (c) のコミットが無いために sfOpenPNEFriendAction クラスにメソッド定義が残っているという状況となっている。
修正内容¶
sfOpenPNEFriendAction クラスのメソッド定義を削除し、 opFriendAction を継承するのみの状態に戻す。おそらく #2190 の 0df5d28e, 41fbb553 を revert すればよい。
対象バージョン¶
OpenPNE-3.6RC1 ( stable-3.6.x ブランチ)
操作