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デザイナーです。近所のイオンによく行きます。