sfEventDispatcher

sfEventとsfEventDispatcherの使い方

Filterの例

テンプレート内に共通のパラメータを追加する。

sfViewParameterHolder内のsfEvent

    $event = $this->dispatcher->filter(new sfEvent($this, 'template.filter_parameters'), $this->getAll());
    $parameters = $event->getReturnValue();

ProjectConfigration内

    $this->getEventDispatcher()->connect(
    	'template.filter_parameters',
    	array('ProjectTemplateFilter', 'filter')
    );

呼び出し元のクラス内

	public static function filter(sfEvent $event, $params)
	{
		$p = $event->getSubject();
		/* @var $p sfViewParameterHolder */
		$params['esc'] = $p->getEscapingMethod();
		return $params;
	}

template内

$esc( "<b>test</b>");