2017-06-15 53 views
-1

在symfony中,服務和事件偵聽器都在services.yml中註冊。他們註冊的方式也非常相似。 那麼symfony如何知道哪個是服務定義,哪個是事件監聽器。Symfony如何區分服務和事件偵聽器

+0

只是想指出的是,它可以創建並沒有將其定義爲一個服務註冊事件偵聽器。使用標記系統更方便:https://symfony.com/doc/current/reference/dic_tags.html – Cerad

+0

從鏈接頁面:「例如,如果您有一個**服務,您想註冊爲Symfony的核心事件之一的監聽者**,您可以用kernel.event_listener標記標記它。「 謝謝,這意味着服務可以是eventlistener也 – tenzin

回答

0

事件監聽服務。

這就是說,有一個名爲tags部分被用於此目的

tags: 
    - { name: kernel.event_listener, event: [...] } 

這樣一個事件監聽器被聲明爲聽一個特定事件([...]部分)。

更多here,不要忘記的是,除了聽衆,也subscribers存在

+0

好吧,這是否意味着。 EventListener是一個服務,在發生在'tags'下定義的特定事件時被調用。 – tenzin

+0

@tenzin是的,基本上就是你說的 – DonCallisto

0

一個事件監聽器是一種服務,而不是差異