第2回CakePHP関西勉強会でやったデモをこちらでも。
CakePHPには色々なフックメソッドがあるのですが、それらがどのタイミングで呼ばれるかを一覧できるようにデモを行いました。懇親会やアンケートでも良かったよ、と意見を頂いたので、簡単に画面のキャプチャを並べます。
1. Controllerのフックメソッド
Controllerのフックメソッドを並べています。index()はアクションメソッドなので、ここで表示されているフックメソッドは3つです。
ソース
<?php class DemoController extends AppController { public $uses = array(); public function index() { } } ?>
フックメソッドの並び
2. Componentのフックメソッド
Controllerの$componentsを設定して、ControllerとComponentのフックメソッドを表示しています。赤色になっているのがComponentです。ControllerとComponentのフックメソッドが絡み合って実行されているのが分かりますね。
ソース
<?php class DemoController extends AppController { public $uses = array(); public $components = array('Demo'); //<---追加 public function index() { } } ?>
フックメソッドの並び
2-1. Componentを複数定義
Controllerの$componentsでComponentを複数設定すると各々のフックメソッドが順に実行されます。また実行される順は$componentsで記述した順序となります。
ソース
<?php class DemoController extends AppController { public $uses = array(); public $components = array('Hoge','Demo'); //<---追加 public function index() { } } ?>
フックメソッドの並び
3. Helperのフックメソッド
さらにControllerの$helpersを設定して、ControllerとComponentとHelperのフックメソッドを表示しています。Helperのフックメソッドは青色です。Helperはビューで利用されるので、後半に集中しています。
ソース
<?php class DemoController extends AppController { public $uses = array(); public $components = array('Demo'); public $helpers = array('Demo'); //<---追加 public function index() { } } ?>
フックメソッドの並び
まとめ
個々のメソッドは知っていても、あらめたてこうして俯瞰して見るとなかなか面白いです。全体の流れが見通せるので、どこに何を書くべきか迷ったときは参考にしてみて下さい。
- Newer: CSS Nite in Osakaで感じた勉強会との違い
- Older: 第2回CakePHP関西勉強会も盛り上がりました&発表資料
トラックバック:2
- このエントリーのトラックバックURL
- /blog/2009/06/cakephp_hook_methods.html/trackback
- Listed below are links to weblogs that reference
- CakePHP 目で見るフックメソッド from Shin x blog
- pingback from 今週の管理人Bookmark (6/7-6/14) - ElectronicBrain is eating BreakFast 09-06-14 (日) 23:57
-
[…] CakePHP 目で見るフックメソッド | Shin x blog […]
- pingback from [CakePHP]Authコンポーネント利用時にパスワードをvalidateする | HappyQuality 12-04-16 (月) 22:14
-
[…] 参考:CakePHP 目で見るフックメソッド – Shin x blog […]