Dit topic is deels een vraag; deels een discussie- vragen topic.
Zelf ben ik meer en meer gaan verdiepen in DDD, Clean Architecture & SOLID. M.i. is dit een mooie combinatie voor een duidelijke code en opzet.
Mijn volgende doel is om de UI laag compleet los te trekken van de onderliggende (App,Domain etc) lagen en dus framework (of whatever) onafhankelijk te zijn.
Hiermee ben ik een beetje aan te testen en loop tegen een dingetje aan.
Opzet is nu met een Laravel framework.
Issue en als doel: een order betalen
Nu komt er Request binnen in mn OrderController met een UUID als key
Het proces is alsvolgt:
Controller: paymentService->startPayment(orderuuid);
PaymentService:
mollieService->createPayment(order);
transactionService->createTransaction(payment,order);
If paid( orderService->setPaid(order); )
Echter nu loop ik vast; de orderService geeft een $this->dispatch( OrderIsPaidEvent); bij een betaling die gelukt is.
Echter deze zit ingesloten in de orderService->getEvents(); welke niet op te roepen is de Laravel controller en dus niet in queue van Laravel kan pushen
Ergens maak ik een misstap; wellicht dat ik meer richting met Commands (CQRS) moet gaan, maar daar ben in me nog in aan het verdiepen.
Het CRUD verhaal laat ik in deze even in het midden
ik tracht een overstap te maken non DDD naar DDD naar framework onafhankelijke logica te programmeren
Zelf ben ik meer en meer gaan verdiepen in DDD, Clean Architecture & SOLID. M.i. is dit een mooie combinatie voor een duidelijke code en opzet.
Mijn volgende doel is om de UI laag compleet los te trekken van de onderliggende (App,Domain etc) lagen en dus framework (of whatever) onafhankelijk te zijn.
Hiermee ben ik een beetje aan te testen en loop tegen een dingetje aan.
Opzet is nu met een Laravel framework.
Issue en als doel: een order betalen
Nu komt er Request binnen in mn OrderController met een UUID als key
Het proces is alsvolgt:
Controller: paymentService->startPayment(orderuuid);
PaymentService:
mollieService->createPayment(order);
transactionService->createTransaction(payment,order);
If paid( orderService->setPaid(order); )
Echter nu loop ik vast; de orderService geeft een $this->dispatch( OrderIsPaidEvent); bij een betaling die gelukt is.
Echter deze zit ingesloten in de orderService->getEvents(); welke niet op te roepen is de Laravel controller en dus niet in queue van Laravel kan pushen
Ergens maak ik een misstap; wellicht dat ik meer richting met Commands (CQRS) moet gaan, maar daar ben in me nog in aan het verdiepen.
Het CRUD verhaal laat ik in deze even in het midden
ik tracht een overstap te maken non DDD naar DDD naar framework onafhankelijke logica te programmeren
[ Voor 0% gewijzigd door Crazy- op 16-07-2017 12:32 . Reden: Ik zit lekker bij zwembad en zal later nog even wat duidelijker opzet maken van Mn topic ;) ]
12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu