podejscie super. ale co w sytuacji, gdy np. trzeba w ramach query pobrac dane z kilku Modułów? Np. Jakiś CustomerBalanceQuery musi pobrać dane z modułu Invoice i payment i jeszcze trzeba te bilanse policzyć?
W moich implementacjach w miejscu QueryBus'a mam dekoratora MessageBusInterface, który wbija w tym miejscu cache lub trigerruje inwalidacje cache, co daje mi wartość. Inną rzeczą, którą robię to zamiast repository mam handlera, który obsługuje większość odczytów, sam mapuje dto na dql, a samo dql cachuje w php array. Więc pytanie czy chcesz korzystać z Message Busa jako pośrednika czy jednak jako sposób na uruchamianie logiki domenowej/infrastruktury. Zwłaszcza, że daje Ci to możliwość obsłużenia wielu różnych encji przez jeden handler.i finalnie zmniejszasz ilość kodu do utrzymania w projekcie.
Handler nie powinien decydować o cache, ponieważ gdy interpreter już wejdzie do handlera, to jesteśmy po punkcie, w którym musieliśmy utworzyć często dziesiątki obiektów potrzebnych przez zależności handlera. Jeśli w tym momencie zwrócimy cache to załadowaliśmy do runtime'u dziesiątki klas i obiektów, które nie zostaną użyte.
podejscie super. ale co w sytuacji, gdy np. trzeba w ramach query pobrac dane z kilku Modułów? Np. Jakiś CustomerBalanceQuery musi pobrać dane z modułu Invoice i payment i jeszcze trzeba te bilanse policzyć?
Łapka w górę za humor.
Ja tak własnie piszę query ;) w sensie bez szyny :) w Laminasie :)
W moich implementacjach w miejscu QueryBus'a mam dekoratora MessageBusInterface, który wbija w tym miejscu cache lub trigerruje inwalidacje cache, co daje mi wartość. Inną rzeczą, którą robię to zamiast repository mam handlera, który obsługuje większość odczytów, sam mapuje dto na dql, a samo dql cachuje w php array. Więc pytanie czy chcesz korzystać z Message Busa jako pośrednika czy jednak jako sposób na uruchamianie logiki domenowej/infrastruktury. Zwłaszcza, że daje Ci to możliwość obsłużenia wielu różnych encji przez jeden handler.i finalnie zmniejszasz ilość kodu do utrzymania w projekcie.
Handler nie powinien decydować o cache, ponieważ gdy interpreter już wejdzie do handlera, to jesteśmy po punkcie, w którym musieliśmy utworzyć często dziesiątki obiektów potrzebnych przez zależności handlera. Jeśli w tym momencie zwrócimy cache to załadowaliśmy do runtime'u dziesiątki klas i obiektów, które nie zostaną użyte.
Kiedy coś o DDD? :D
Nie wiem. :) Nie planuję z wyprzedzeniem, jak mam coś czym chcę się podzielić to wrzucam.
No nie wiem co ci powiedzieć