0

非常に短い質問: イベントに渡されたパラメーターの値を変更する最善の方法は、参照によって渡すことでしょうか? なんらかの理由でこれを行うのを少しためらっています。ここで何かがおかしいと感じていますが、何が問題なのかわかりません。

リクエストされたサンプルコード:

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 つの方法があるようです。

  1. 最初の方法は、コンテンツを変更してから、上で定義した setContent を使用してコンテンツをイベントに戻すことです。
  2. 2 番目の方法は、代わりに参照によってコンテンツを渡すことです (setContent と getContent abit を変更して、コンテンツによって設定および取得する必要があります)。
4

0 に答える 0