よくリファレンスを探すので自分用のメモです。

※このページは2.2RC-12.2.1を参考にしています。一部CakePHP2.0で新たに追加され、1.3では使用できないものがあります。
※Behavior と Component のシンプルなテンプレート追加。たまにしか使わないのでこれをコピペして使う。

クラス メソッド 引数 戻り値
Model
Model beforeFind mixed $queryData boolean or $queryData
Model afterFind array $results[, bool $primary=false] mixed $results
Model beforeValidate [array $options=array()] boolean
Model afterValidate
Model beforeSave [array $options=array()] boolean
Model afterSave boolean $created
Model beforeDelete [boolean $cascade=true] boolean
Model afterDelete
Model onError
ModelBehavior
ModelBehavior beforeFind Model $model $query  boolean or $queryData
ModelBehavior afterFind Model $model, $results, $primary  mixed $results
ModelBehavior beforeValidate Model $model  boolean
ModelBehavior afterValidate
ModelBehavior beforeSave Model $model  boolean
ModelBehavior afterSave Model $model, $created
ModelBehavior beforeDelete Model $model[, $cascade=true]  boolean
ModelBehavior afterDelete Model $model
ModelBehavior onError Model $model, $error
Controller
Controller beforeFilter
Controller beforeRender
Controller afterFilter
Controller beforeScaffold string $method boolean Success
Controller beforeRedirect $url[, $status=null, $exit=true] false, string or array
Controller afterScaffoldSave string $method boolean Success
Controller afterScaffoldSaveError string $method boolean Success
Controller scaffoldError string $method boolean Success
Component
Component initialize Controller $controller
Component startup Controller $controller
Component beforeRender Controller $controller
Component shutdown Controller $controller
Component beforeRedirect Controller $controller,$url[$status=null,$exit=true] array or null
Helper
Helper beforeRenderFile $viewFile
Helper afterRenderFile $viewFile, $countent
Helper beforeRender $vieFile
Helper afterRender $viewFile
Helper beforeLayout $layoutFile
Helper afterLayout $layoutFile

Controller と Component のコールバックの関係

Controller Component
initialize  beforeFilterの前
beforeFilter
startup  beforeFilter とリクエストされたアクションの間
action:  リクエストされたアクション
beforeRender
beforeRender
shutdown  出力結果がブラウザに送信される前
afterFilter

redirect と beforeRedirect は特殊

redirect
beforeRedirect  Controller::redirect の内部から呼ばれる

テンプレート

Behavior のテンプレート

 <?php

class {My}Behavior extends ModelBehavior {

	public $settings = array();
	public $mapMethods = array();

	public function setup(Model $model, $config = array()) {
	}

/*
	public function cleanup(Model $model) {
		if (isset($this->settings[$model->alias])) {
			unset($this->settings[$model->alias]);
		}
	}
*/

	public function beforeFind(Model $model, $query) {
		return true;
	}

	public function afterFind(Model $model, $results, $primary) {
	}

	public function beforeValidate(Model $model) {
		return true;
	}

	public function afterValidate(Model $model) {
		return true;
	}

	public function beforeSave(Model $model) {
		return true;
	}

	public function afterSave(Model $model, $created) {
		return true;
	}

	public function beforeDelete(Model $model, $cascade = true) {
		return true;
	}

	public function afterDelete(Model $model) {
	}

	public function onError(Model $model, $error) {
	}

/*
	protected function _addToWhitelist(Model $model, $field) {
		if (is_array($field)) {
			foreach ($field as $f) {
				$this->_addToWhitelist($model, $f);
			}
			return;
		}
		if (!empty($model->whitelist) && !in_array($field, $model->whitelist)) {
			$model->whitelist[] = $field;
		}
	}
*/

}

Component のテンプレート

<?php
class {My}Component extends Component {

	protected $_Collection;
	public $settings = array();
	public $components = array();
	protected $_componentMap = array();

/*	public function __construct(ComponentCollection $collection, $settings = array()) {
		$this->_Collection = $collection;
		$this->settings = $settings;
		$this->_set($settings);
		if (!empty($this->components)) {
			$this->_componentMap = ComponentCollection::normalizeObjectArray($this->components);
		}
	}
*/
/*	public function __get($name) {
		if (isset($this->_componentMap[$name]) && !isset($this->{$name})) {
			$settings = array_merge((array)$this->_componentMap[$name]['settings'], array('enabled' => false));
			$this->{$name} = $this->_Collection->load($this->_componentMap[$name]['class'], $settings);
		}
		if (isset($this->{$name})) {
			return $this->{$name};
		}
	}
*/
	public function initialize(Controller $controller) {
	}

	public function startup(Controller $controller) {
	}

	public function beforeRender(Controller $controller) {
	}

	public function shutdown(Controller $controller) {
	}

	public function beforeRedirect(Controller $controller, $url, $status = null, $exit = true) {
	}
}