CakePHP2.2でOrderedBehaviorを使ったらE_STRICTエラーが発生
CakePHP久々にCakePHPでOrderedBehaviorを使ったら見慣れないエラーが発生しました。
Strict (2048): Declaration of OrderedBehavior::setup() should be compatible with ModelBehavior::setup(Model $model, $config = Array) [APP\Model\Behavior\OrderedBehavior.php, line 585]
こんなのが4つ出ました。
http://www.1x1.jp/blog/2007/11/phpestrict_message.html
こちらを参考にしたら、エラーの内容は
継承によりメソッドをオーバーライドする場合は、継承元と同じメソッド定義にする。
親クラスと引数の数が異なるとNG
デフォルト値のあり・なしが異なるとNG(値は変わってもOK)
Typehintも同じでないとNG
とのこと。とりあえずModelBehaviorに沿って、OrderedBehavior.php内のオーバーライドされているfunction部分を書き換えました。
public function setup(Model $Model, $config = array()) { …
public function afterDelete(Model $Model) { …
public function beforeSave(Model $Model) { …
public function afterDelete(Model $Model) { …
検証不足ですがとりあえずエラーは消え動作に問題はなさそうです。うーん。