Symfonysイベントシステムについてのガイド/チュートリアルを読んだことがあります。しかし、私はまだ命名のベストプラクティスについてはよく分かりません。不幸にも、ほとんどのドキュメントではログインなどのデフォルトのシナリオが使用されていますので、ゲームの例を示します。Symfony2でのリスナーのネーミング
コマンドは何らかの一致結果を評価します。これは、このような適切なイベントを発生させます:
$dispatcher->dispatch('game_bundle.match_won', new MatchWonEvent($match, $winner));
は、今私は、例えば、勝者のFacebookページにこれを掲示用と勝者の達成を予約する別のもののようないくつかのリスナー、このイベントを処理するために、登録したいです。例では、ログインイベントを処理するリスナーは、主にLoginListener
のように呼ばれていましたが、この名前は関連するイベントではなく、実際の使用に関連するものではありませんか?今私の例ではMatchWonListener
が必要ですが、Facebookと成果の両方のロジックが含まれている必要がありますか?そうすれば、イベントシステムは役に立たなくなるでしょう... FacebookListener
にとonMatchWon($event)
、それにAchievementListener
とそれ自身のonMatchWon($event)
メソッドを持つ方が良いのではないでしょうか?これにより、たとえばFacebook関連のイベントをFacebookListener
に簡単に追加することもできます。
サンプルの名前が混乱していますが、今は分かりません。私はそれが完全に間違っていますか?
リスナークラスの一般的な目的( 'FacebookListener'、' AchievementListener')とイベント 'onMatchWon'で呼び出される実際のメソッドの名前を付けたいと思っていました。それは何も結びついていないからです(まだ完全に新しいListenersで簡単に拡張できます)。大きな利点は、イベントで派遣されたメソッドの直接呼び出しがたくさんある必要はないということです。 –
いいえ、それはまさに私が人々がやることを妨害しようとしていたことを示唆していませんでした。私はコンベンションはないと言っていましたが、「MatchWonListener」を持っているとかなり馬鹿に思えました。あなたが「したい」と思っていたことは大丈夫です。クラス「リスナー」の名前は好きではありません。私は避けようとしていますが、すべてが恐ろしいことではなく、私が言ったように、味の問題です。 – fd8s0
ああ、私は間違っていませんでした。 ! –