ヘルパーのコールバックメソッドを調べてみました [CakePHP1.3][Helper][callback method]
CakePHPの公式ドキュメントにヘルパーのコールバックメソッドの説明がありませんでした。
仕方ないからさくっと調べてみました。
まずCakePHPコア内のヘルパー定義ファイルを見つけます
/cakephp/cake/libs/view/helper.php
<?php class Helper extends Overloadable { /** * Before render callback. beforeRender is called before the view file is rendered. * * Overridden in subclasses. * * @return void * @access public */ function beforeRender() { } /** * After render callback. afterRender is called after the view file is rendered * but before the layout has been rendered. * * Overridden in subclasses. * * @return void * @access public */ function afterRender() { } /** * Before layout callback. beforeLayout is called before the layout is rendered. * * Overridden in subclasses. * * @return void * @access public */ function beforeLayout() { } /** * After layout callback. afterLayout is called after the layout has rendered. * * Overridden in subclasses. * * @return void * @access public */ function afterLayout() { } } ?>
これを適当にヘルパーを作ってオーバーライドします
<?php class I_want_to_you_official_manual_of_cakephp_Helper extends Helper { function beforeRender() { echo __FUNCTION__; } function afterRender() { echo __FUNCTION__; } function beforeLayout() { echo __FUNCTION__; } function afterLayout() { echo __FUNCTION__; } } ?>
実行結果はこんな感じです
beforeRender()がdefault.ctpの外に出力
↓
beforeLayout()がdefault.ctpの外に出力
↓
afterLayout()がdefault.ctpの外に出力
↓
afterRender()がviewファイルの中に出力