コンポーネント内で他のコンポーネントが使える
app/Controller/Component/HogeComponent.php
<?php
App::uses('Component', 'Controller');
class HogeComponent extends Component {
public $components = array('Auth');
public function fuga() {
return $this->Auth->user();
}
}
コンポーネントでコールバック関数
コンポーネント内で以下の関数を指定してあれば、当該コンポーネントを読み込んだコントローラー内で勝手に呼ばれる。
順番としては
initialize -> startup -> beforeRender -> shutdown
app/Controller/Component/HogeComponent.php
public function initialize(Controller $controller) {
// コントローラのbeforeFilterの前に呼ばれる
}
public function startup(Controller $controller) {
// コントローラのbeforeFilterの直後に呼ばれる
}
public function beforeRender(Controller $controller) {
// コントローラが要求されたアクションのロジックを実行した後、ビューのレンダリング前に呼ばれる
}
public function shutdown(Controller $controller) {
// 出力結果がブラウザに送信される前に呼び出される
}
public function beforeRedirect(Controller $controller, $url, $status, $exit=true) {
//コントローラのredirectメソッドが呼び出されるタイミングで、他のアクションより先に呼び出される
//このメソッドがfalse を返す時、コントローラはリダイレクトを中断する
}
※ただし、コンポーネント内でコンポーネントを読み込んだ場合はこれらのコンポーネントは呼ばれない。