14時の間食

CakePHPの記事を中心にWeb制作について

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) { …

検証不足ですがとりあえずエラーは消え動作に問題はなさそうです。うーん。

カテゴリー

最近の記事

Author

  • ささきち-このブログを書いてる人
    s3make@ささきち
    多摩川沿いに住むフリーのWebデザイナーです。近所のイオンによく行きます。