プログラミングメモ

主にWeb(PHP, JavaScript, etc.)関連のプログラミングメモをしていきます。

イベントハンドラを使う

下記はViewのbeforeRenderで何かしたい場合の例。
イベント発生前にハンドラを追加すればいいので、beforeRender()でなくても可。

<?php 
class SampleController extends AppController {
	public function beforeRender() {
		$this->getEventManager()->attach(array($this, 'beforeRenderView'), 'View.beforeRender', array());
	}
	
	/**
	 * @param CakeEvent $e
	 */
	public function beforeRenderView($e) {
		echo $e->data[0];
	}
}

自前のイベントを呼び出したいときは

$this->getEventManager()->dispatch('SampleController.beforeRedirect');

のようにする。