Contributte event dispatcher + doctrine lifecycle
- Pepino
- Člen | 256
Zdravím, chtěl bych se zeptat jak danou věc řešíte vy.
Mám entitu
a potřebuju po uložení/smazání
vyvolat event.
- Při použítí
@ORM\HasLifecycleCallbacks
nemám v příslušných funkcích přístup k dispatcheru (nebo nevím jak se k němu dostat). - Můžu použít
@ORM\EntityListeners({"ItemListener"})
aItemListener
zaregistrovat jako službu. Tady už si můžu v konstruktoru předat dispatcher a event vyvolat. Toto řešení funguje, ale příjde mi trochu krkolomné.
Díky za každý tip.
- ZahorskyJan
- Člen | 59
Mame abstraktni manager, ktery v metodach create/update/delete odpaluje vlastni before/after udalosti pres eventDispatcher. Mame tak vetsi kontrolu nad tim, co do tech udalosti leti a jak s tim muzeme pracovat.
- ZahorskyJan
- Člen | 59
@Pepino omlouvam se, vubec jsem nezaregistroval odpoved. Ty eventy jsou obecne a odpaluji se vzdycky na vsechny entity. Potom se v posluchaci testuje pres instance of a kdyz to sedi, tak na to reaguje. Jinak ted zkousime jeste to, ze pokud existuje specificka trida pro nejakou entitu, tak se vola i ta. V nekterych pripadech je to efektivnejsi a nemusis uz v te udalosti testovat, ze to je event pro tebe, protoze jinak se nezavola.