3.8 ビヘイビア
モデルのビヘイビアは、CakePHP のモデル内に定義されたいくつかの機能をまとめる方法です。これを使用すると直接的にはモデルに関係しないかもしれないがそこにおいておく必要があるロジックを分けておくことができます。モデルを拡張するためのシンプルだが強力な方法を提供することで、ビヘイビアを使用すると単純なクラス変数を定義することでモデルに機能を追加できます。たとえば、ビヘイビアを使用してモデルからあらゆる特別な重み(それはモデリングしているビジネス契約の一部ではないかもしれません)を取り除くことができます。あるいは、それは異なる別のモデルで必要とされている、またはそう推定されるかもしれません。
サンプルとしてモデルを考えます。このモデルを使用すると、データベースのテーブルにアクセスし、ツリーのような構造として情報を保存します。ツリー内のノードの削除、追加、変更はテーブルの行の削除、挿入、編集と同じように簡単なわけではありません。モノが移動すると多くのレコードを更新する必要があります。基本となるモデル毎に(その機能を必要とするすべてのモデルに対して)ツリー操作メソッドを作成するのではなく、単に TreeBehavior を使用することをモデルに伝えるだけ、あるいはより形式的な用語を使用して、モデルを Tree として振舞わせます。これはモデルへの振る舞いの割り当てとして知られています。たった1行のコードだけで、CakePHP のモデルは一連の新しいメソッドを使用でき、既存の構造と相互に作用します。
CakePHP は既にツリー構造、内容翻訳、アクセス制御リスト用のビヘイビアが付属しています。いうまでもありませんが、コミュニティの貢献であるビヘイビアがすでに CakePHP Bakery (http://bakery.cakephp.org) で入手できます。この章では、基本的な使用方法のパターンを紹介します。モデルへのビヘイビアの追加、CakePHP の組み込みビヘイビアの使用法、独自ビヘイビアの作り方です。
