Ich habe einige Anleitungen/Tutorials über Symfonys Event System gelesen. Aber ich bin mir immer noch nicht sicher über die Benennung Best Practice. Leider verwenden die meisten Dokumentationen Standardszenarien wie Login, usw. Hier ist ein Beispiel aus einem Spiel:Benennung von Listenern in Symfony2
Ein Befehl bewertet eine Art von Übereinstimmungsergebnis. Sie feuert ein entsprechendes Ereignis wie folgt aus:
$dispatcher->dispatch('game_bundle.match_won', new MatchWonEvent($match, $winner));
Jetzt habe ich mehrere Zuhörer zu behandeln dieses Ereignis, wie zum Beispiel einer für dieses Posting auf dem Siegerfacebook-Seite und ein weiteres Buch einen Erfolg für den Gewinner registrieren möchten. In den Beispielen habe ich festgestellt, dass der Listener, der das Login-Ereignis behandelt, hauptsächlich als etwas wie LoginListener
bezeichnet wurde, aber sollte sich dieser Name nicht auf die tatsächliche Verwendung beziehen, anstatt auf das Ereignis, auf das er bezogen ist? Weil ich jetzt in meinem Beispiel eine MatchWonListener
benötige, aber sollte diese sowohl die Facebook- als auch die Leistungslogik enthalten? Das würde das Ereignissystem dann nutzlos machen ... Wäre es nicht besser, einen FacebookListener
mit einem onMatchWon($event)
und einen AchievementListener
mit seiner eigenen onMatchWon($event)
Methode zu haben? Dies würde es auch leicht machen, mehr Facebook-bezogene Ereignisse in die FacebookListener
zum Beispiel hinzuzufügen.
Ich bin verwirrt über die Benennung in den Proben und nicht sicher über jetzt. Habe ich es total falsch verstanden?
Ich wollte die Listener-Klasse nach dem allgemeinen Zweck ('FacebookListener',' AchievementListener') und die tatsächliche Methode, die für das Ereignis 'onMatchWon' aufgerufen wird. Weil das nichts koppeln würde (immer noch leicht erweiterbar mit komplett neuen Listenern. Der große Vorteil ist, dass es nicht viele direkte Aufrufe in der Methode geben muss, wenn die Veranstaltung abgesendet wird. Anders herum, wie Sie es vorgeschlagen haben, würde ich nicht weiß, wie man die Zuhörer anruft, weil mehrere Zuhörer (in Bezug auf Errungenschaften, Facebook, ...) dann "MatchWonListener" heißen würden. –
Nein, das habe ich nicht vorgeschlagen, genau das habe ich versucht, die Leute davon abzuhalten. Ich habe gesagt, dass es keine Konvention gibt, aber einen 'MatchWonListener' zu haben, scheint ziemlich dumm zu sein. Ich denke, was du 'wolltest' ist ok, ich mag es nicht, Klassen 'Listener' zu nennen, weil sie wissen, wann sie ' Re genannt werden, was ich zu vermeiden versuche, aber alles in allem ist nicht so schlimm, und wie gesagt, ist eher eine Frage des Geschmacks. – fd8s0
Ah ok! Also ich war gar nicht so falsch. ;-) Vielen Dank ! –