lytte til flere hendelser med en lytter?

stemmer
19

Jeg bygger en app i Symfony2 som har et sosialt-drevet aspektet (mange handlinger en bruker utfører på nettstedet vil dukke opp i en news feed -stil liste for andre å se). Jeg har funnet ut at SF2 hendelsen sentralen / lytteren system er den beste måten å håndtere dette, men jeg har kjørt inn i noe av en ulempe i å prøve å konfigurere min lytteren til å håndtere mange ulike arrangementer.

(Nå foreldet) dokumentasjon jeg har funnet i søkene mine synes å indikere at på ett punkt, kunne hendelsen lyttere registrere seg på flere hendelser, men koden er refactored, og nå konfigurasjonen ser omtrent slik ut:

config.yml:

services:
  social.listener:
    class: F\Q\C\N\SocialEventListener
    tags:
      - { name: kernel.listener, event: onSocialShare }

Er det noen måte å enten:

  1. Lett passere flere hendelser (noe som event: [onSocialShare, onSocialFriend, onSocialCreate]fungerer, men det føles som det vil raskt bli stygge og unmaintainable, fyller opp min config fil med potensielt mange sosiale arrangementer
  2. Definere hendelsen som jeg ønsker å abonnere fra kode (slik det ble gjort tidligere)
  3. Eller muligens en annen, bedre alternativ som jeg ikke har tenkt på ennå

Takk på forhånd.

Publisert på 09/05/2011 klokken 17:02
kilden bruker
På andre språk...                            


2 svar

stemmer
30

Word tilbake fra Symfony-brukere google gruppe (tråd her ) er at den riktige måten å gjøre dette på er ved å legge til flere søkeord:

services:
  social.listener:
    class: F\Q\C\N\SocialEventListener
    tags:
      - { name: kernel.listener, event: onSocialShare }
      - { name: kernel.listener, event: onSocialFriend }
      - { name: kernel.listener, event: ... etc }

Så ser det ut som i dag, det er ingen god måte å legge hendelsesabonnement fra lytteren kode. Jaja.

Svarte 10/05/2011 kl. 07:43
kilden bruker

stemmer
2

Jeg tror det vil være enklere å bruke EventSubscriber, kan du definere hendelsene du vil bruke direkte i den klassen

http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html

Svarte 30/05/2014 kl. 13:18
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more