CakePHP でいろいろ作ってるんですが、bootstrap.php に全部入れれば良いよね、Vendors に入れれば良いよね、AppModel.php に入れれば良いよねという感じでビヘイビアは滅多なことでは使ってなかったんですが、AppModel.php の項目が増えてきて大変になってきたのでビヘイビアで管理することにしました。
ビヘイビアの使い方
ビヘイビアは ModelBehavior を継承し、クラス名を HogeBehavior のように末尾に Behavior を付けて作成ます。ファイルの置き場所は Model/Behavior 以下となります。以下サンプルです。
1 2 3 | class WebleExtensionBehavior extends ModelBehavior { } |
モデルのメソッドを使用する
DB にアクセスするようなコードを書く場合は第一引数から受け取れるみたいです。コンポーネントか何かもこんな感じでした。setup メソッドにはモデルの設定情報が入るようです。
1 2 3 4 5 6 7 8 9 10 11 12 | class WebleExtensionBehavior extends ModelBehavior { public function setup(&$model, $config = array()) { $this->settings = $config; } public function recent(&$model, $limit) { return $model->find('all', Array('order' => Array('created' => 'DESC'), 'limit' => $limit)); } } |
この点については以下のページが参考になりました。
コメント