Kdyby\Events – pořadí volání jednotlivých listerneru
- iwory
- Člen | 147
Ahoj,
na vytvoření objednávky mám vícero listenerů který dělají plno práce
od vytvoření faktury, odeslání mailu, odeslání do PPL, sms apod.
Jelikož by samotný Subscriber byla velká třída, tak je mám rozdělný
do více tříd kde každá poslouchá na stejnou událost. Tedy mám
OrderNotifyEmailSubscriber
,
SendOrderToPPLSubscriber
atd.
Řeším ale problém s pořadím. Potřebuji aby se mi jedntolivé
listenery volaly v určitém pořadí.
Koukal jsem do dokumentace na Listener priorities
který by řešil
můj problém. Ale nevím jestli jde a případně jak použít ikdyž mám
jednotlivé listenery ve více třídách.
Díky moc za případnou nápovědu
- iwory
- Člen | 147
CZechBoY napsal(a):
Proč potřebuješ přesné pořadí? Ty listenery by měly být nezávislé na sobě. Pokud potřebuješ něco vždy provést a ostatní na něm závisí tak to proveď ještě před vystřelením eventu.
Chtěl jsem vygenerovat fakturu kterou mu následně poslat do mailu… Takže jsem chtěl zařídit aby se listener s generováním faktury zavolal dříve než odeslání e-mailu.
Teoreticky bych tyhle dva mohl spojit do jednoho, ale zajímalo by mě, zda by to mělo řešení nebo to spíš neřešit přes listenery.
- Danny19
- Člen | 5
Ahoj, já to třeba mám tak, že na změnu stavu objednávky mám dva
listenery, kde prvně změním stav objednávky a pak se na základě toho
odešle email. A to pořadí nastavuješ jako druhou hodnotu pole, kde vyšší
číslo má přednost.
Mám to třeba takhle:
"App\Model\Facades\OrderFacade::onOrderStateChange" => array("orderStateChange", 1)