Table of Contents : マニュアル

コントローラの拡張

コンポーネントは、コントローラのロジック内で手伝いをするクラスのことです。もし、複数のコントローラ(またはアプリケーション)で共通に使いたいロジックがあれば、通常、コンポーネントにするのがいちばん良い方法です。例えば、コアに含まれるEmailComponentクラスは、Emailを簡単に作成、送信することができます。一つのコントローラの中にこのロジックを書いてしまうのではなく、ロジックをパッケージ化して、共通に使えるようにできるわけです。

コントローラには、幾つかのコールバック(callbacks)もあります。CakePHPコアの動作中に自分のロジックを割り込ませたい場合、コールバックを使うことができます。使用できるコールバックには次のものがあります:

  • beforeFilter()、すべてのコントローラのアクションロジックの実行前に呼ばれます。
  • beforeRender()、コントローラロジックの実行後、しかしビューの表示(render)前に実行されます。
  • afterFilter()、すべてのコントローラロジックを実行し、ビューの表示(render)が終わった後に実行されます。手動でrender()をコントローラから呼び、その後にロジックを実行しているのでない限り、afterRenderとafterFilterには違いがありません。