我讀過一些關於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'上調用的實際方法之後命名偵聽器類。因爲這不會使任何東西耦合(仍然可以很容易地用全新的Listener擴展)。最大的好處仍然是,在事件發送時,不需要在方法中進行大量的直接調用,反之,我不會知道如何調用監聽器,因爲多個監聽器(關於成就,臉譜,...)將被稱爲'MatchWonListener'然後 –
不,我沒有暗示,這正是我試圖阻止人們做的事情。我說沒有約定,但是有一個'MatchWonListener'看起來很愚蠢,我認爲你想「做」的事情是好的,我不喜歡將類命名爲「聽衆」,因爲這意味着他們知道他們什麼時候「重新被稱爲,我儘量避免,但總的來說並不可怕,正如我所說的,更多的是品味的問題。 – fd8s0
好的!所以我一點也沒有錯; ;-)非常感謝! –