CakePHP & PHP 2009/06/09 18:14

CakePHP 目で見るフックメソッド

第2回CakePHP関西勉強会でやったデモをこちらでも。

CakePHPには色々なフックメソッドがあるのですが、それらがどのタイミングで呼ばれるかを一覧できるようにデモを行いました。懇親会やアンケートでも良かったよ、と意見を頂いたので、簡単に画面のキャプチャを並べます。

1. Controllerのフックメソッド

Controllerのフックメソッドを並べています。index()はアクションメソッドなので、ここで表示されているフックメソッドは3つです。

ソース

PHP:
  1. <?php
  2. class DemoController extends AppController {
  3.   public $uses = array();
  4.  
  5.   public function index() {
  6.   }
  7. }
  8. ?>

フックメソッドの並び

2. Componentのフックメソッド

Controllerの$componentsを設定して、ControllerとComponentのフックメソッドを表示しています。赤色になっているのがComponentです。ControllerとComponentのフックメソッドが絡み合って実行されているのが分かりますね。

ソース

PHP:
  1. <?php
  2. class DemoController extends AppController {
  3.   public $uses = array();
  4.   public $components = array('Demo'); //<---追加
  5.  
  6.   public function index() {
  7.   }
  8. }
  9. ?>

フックメソッドの並び

2-1. Componentを複数定義

Controllerの$componentsでComponentを複数設定すると各々のフックメソッドが順に実行されます。また実行される順は$componentsで記述した順序となります。

ソース

PHP:
  1. <?php
  2. class DemoController extends AppController {
  3.   public $uses = array();
  4.   public $components = array('Hoge','Demo'); //<---追加
  5.  
  6.   public function index() {
  7.   }
  8. }
  9. ?>

フックメソッドの並び

3. Helperのフックメソッド

さらにControllerの$helpersを設定して、ControllerとComponentとHelperのフックメソッドを表示しています。Helperのフックメソッドは青色です。Helperはビューで利用されるので、後半に集中しています。

ソース

PHP:
  1. <?php
  2. class DemoController extends AppController {
  3.   public $uses = array();
  4.   public $components = array('Demo');
  5.   public $helpers = array('Demo'); //<---追加
  6.  
  7.   public function index() {
  8.   }
  9. }
  10. ?>

フックメソッドの並び

まとめ

個々のメソッドは知っていても、あらめたてこうして俯瞰して見るとなかなか面白いです。全体の流れが見通せるので、どこに何を書くべきか迷ったときは参考にしてみて下さい。



■Related Posts

One Response to “CakePHP 目で見るフックメソッド”

  1. on 14 6月 2009 at 23:57 1.今週の管理人Bookmark (6/7-6/14) - ElectronicBrain is eating BreakFast said …

    [...] CakePHP 目で見るフックメソッド | Shin x blog [...]

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply