CakePHP のライブラリ
CakePHP には、ビヘイビア、コンポーネント、ヘルパーといった3つのライブラリがあります。ライブラリの役割は独立性の高いコードを再利用する手助けをすることです。ライブラリは自分で作ることができますし、他人のライブラリを使うことも可能です。逆にそれができないコードはライブラリではありません。
ビヘイビア - behavior
ビヘイビアはモデルに関する再利用性の高いメソッドをまとめたクラスです。
利用するためには次のように書きます。
class SomeModel extends AppModel { // このモデルで利用するビヘイビアを書き連ねます // ここで書いたクラスは自動的に include されます var $actsAs = array("Hoge" , "Foo"); function someMethod() { // 実際に使う場合 $this->hogesMethod(); } }
たとえば、パソコンやゲーム機のような電子機器は、電力をコンセントから得るという点で共通しています。そこで、 PowerSouce というビヘイビアを作って PowerSource::insertToConcentricPlug() というメソッドを書けば、別の電子機器が登場しても、再びコンセント接続のコードを書かなくてすみます。
なお、ビヘイビアを利用できるのは CakePHP 1.2.x.x. 以降です。
コンポーネント - component
コンポーネントは、ビヘイビアと同様に、コントローラに関する再利用性の高いメソッドをまとめたクラスです。
利用するためには次のように書きます。
class SomeController extends AppModel { // このコントローラで利用するコンポーネントを書き連ねます // ここで書いたクラスは自動的に include されます var $components = array("Hoge" , "Foo"); function someMethod() { // 実際に使う場合 $this->Hoge->hogeMethod(); } }
たとえば今後、ログインとログアウトをシームレスに Ajax で実装することが大流行するかもしれません。ログインとログアウトといった機能は Web アプリケーションの必須機能ですので、コンポーネントの利用を検討すべきです。
ヘルパー - helper
ヘルパーは HTML のテンプレートの記述に関する再利用性の高いメソッドをまとめたクラスです。
利用するには、まず…
class SomeController extends AppModel { // このコントローラのビューで利用するヘルパーを書き連ねます // ここで書いたクラスは自動的に include されます var $helpers = array("Hoge" , "Foo"); }
…と宣言し、テンプレートの中で…
<body> <p>echo $hoge->somePrint() </p> </body>
…と書きます。 SomeController::helpers 配列のヘルパーは、コントローラの中で宣言して、テンプレートの中で変数としてアクセスする点に注意してください。
たとえば、今日を基準とした3年前から3年後の西暦を要素に持つ select タグを出力するといったコードは多くの人がヘルパーで実現したいかもしれません。
« 「CakePHP の基本的なデータ構造」へ | トップへ | 上の階層へ | 「モデルの動的なアソシエーション」へ »