ヘルパーのコールバックメソッドを調べてみました [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ファイルの中に出力


以上CakePHPのヘルパーのコールバックメソッドの調査レポートでした