非常に短い質問: イベントに渡されたパラメーターの値を変更する最善の方法は、参照によって渡すことでしょうか? なんらかの理由でこれを行うのを少しためらっています。ここで何かがおかしいと感じていますが、何が問題なのかわかりません。
リクエストされたサンプルコード:
class CoreEvent extends \Symfony\Component\EventDispatcher\Event
{
/**
* @var storing the current page content
*/
private $content;
/**
* sets content
*
* @param $content
*/
public function setContent($content)
{
$this->content = $content;
}
/**
* gets content
*
* @return mixed
*/
public function getContent()
{
return $this->content;
}
}
イベントのセットアップ
$core_event= new CoreEvent();
$content = "some content";
$core_event->setContent($content);
以下は、サンプル リスナー コードです。
$this->eventDispatcher->addListener("onPageEnd", array($this, 'onPageEnd'));
発車係:
$container->get('event_dispatcher')->dispatch("onPageEnd", $core_event);
ここで、ディスパッチャーによって呼び出される関数 (多くのリスナーがこの同じイベントをリッスンしていると仮定) が $content を変更/変更できるようにする場合、2 つの方法があるようです。
- 最初の方法は、コンテンツを変更してから、上で定義した setContent を使用してコンテンツをイベントに戻すことです。
- 2 番目の方法は、代わりに参照によってコンテンツを渡すことです (setContent と getContent abit を変更して、コンテンツによって設定および取得する必要があります)。