検索

ホームページ  >  に質問  >  本文

symfony - EventDispatcher コンポーネント

みんなありがとう 最近 symfony2 を勉強していますが、EventDispatcher コンポーネントが理解できず、公式ドキュメントもあまり明確ではありません。 。解決

ringa_leeringa_lee2791日前361

全員に返信(1)返信します

  • 黄舟

    黄舟2017-05-16 16:46:48

    jQuery についてご存知ですか?イベントメカニズムは常に同じです:

    (1) まずイベント名を定義します

    これは JS の onclick に似ており、vendor.my_event のようなイベント名を定義できます。使いやすくするために、「列挙」クラスを使用してこれらのイベントを記録できます。 リーリー

    文字列を直接記述する代わりに、コード内で Events::MY_EVENT を使用できます。この「列挙」クラスを構築する必要はありませんが、構築することをお勧めします。

    間違った場合は、デバッグを容易にするためにエラーが直接報告されます
    1. メンテナンスを容易にするために一元化します(そうしないと、どのようなイベントがあるかを忘れてしまいます)
    2. (2) イベントクラスを定義する(コンテキスト定義)

    jQuery を使用する場合、通常はイベント クラスを自分で定義しませんが、実際にはこのイベント クラスも存在します (デフォルトのものが使用されます)。受け入れられる最初のパラメーターはイベント クラスのオブジェクトであり、このオブジェクトです。 e.target のようないくつかのコンテキスト情報が含まれます。

    sf の EventDispatcher を使用して、型チェックを実行し、コールバックのコンテキスト (平たく言えば、イベント オブジェクトからどのようなデータを取得できるか) を提供する独自のイベント クラスを定義します。

    リーリー

    (3) トリガーイベント

    イベント名とイベント クラスがあり、sf にはイベント ディスパッチャーがすでに装備されています。これを直接使用してイベントをトリガーできます。

    リーリー

    (4) リスナー(コールバック)を定義する

    リーリー

    (5) コールバックに対応するイベントをリッスンさせます

    コードを使用してコールバックを追加できます:

    リーリー

    構成、つまり依存関係注入 (DIC) を使用することもできます:

    リーリー

    返事
    0
  • キャンセル返事