Ahoj, v aplikaci jsme potřebovali vyřešit vícekrokovou registraci. Napadlo mě použít Kdyby\Event a jednotlivé formuláře pomocí nich provázat a celou logiku (posloupnost kroků) ovládat z listenru. Řešení jsem považoval za geniální až do doby než mi začalo vrtat hlavou, jestli je v pořádku Listeneru, de facto modelové třídě, předávat UI\Component. Na UI\Component potom volám redirect('nextStep'). Jakmile komponentu na dalším kroku potvrdím, vyvolám údálost na které zase poslouchá ten samý listener a provede se metoda, která přísluší danému kroku.

Elegantní je to v tom, že si můžu lehce přehazovat kroky a proces registrace snadno upravovat. Nicméně se nemůžu zbavit pocitu, že je to prasárna.

Manipulace čímkoliv z listeneru je naprosto v pohodě (tedy i komunikace komponent). Redirect v listeneru ovšem rozhodně není v pohodě. Přijatelné je to pouze v callbacku eventu a to pouze v případě, že za ním v řadě nejsou žádné listenery.

Ovšem pokud víš co děláš a jsi ochoten přijmout důsledky, tak to tak klidně udělej :)


You must first log in to participate in this discussion