簡體   English   中英

DDD:我應該將Symfony EventDispatcher用於我的域事件嗎?

[英]DDD: Should I use the Symfony EventDispatcher for my domain events?

我想知道是否應該使用Symfony EventDispatcher Component來處理我的DDD應用程序中的域事件。

對我來說,當經過良好測試的組件可用時,從頭開始重新安排事件調度程序是沒有意義的。 但另一方面,Symfony組件使所有事件都從基類Event類擴展。 這不會將我的域事件綁定到EventDispatcher組件嗎?

此外,如果我使用此組件,我應該在應用程序范圍的event_dispatcher服務上引發域事件,還是應該將Symfony的應用程序事件和我的域事件分開(即創建一個新的EventDispatcher)?

我想知道為什么沒有EventInterface。

這: https//github.com/symfony/symfony/issues/9539表示因為Event是一個值對象,所以不需要任何接口。 我承認我並不完全遵循這個論點(至少在耦合方面),但還沒有進一步研究。 可能是一個很好的DDD問題。

在我的例子中,我創建了一個DomainEventInterface,它在DomainEvent中實現,而DomainEvent又擴展了Event。 我使用DomainEvent作為我的基本事件類。 如果我甚至需要切換調度員,這應該使重新分解相當容易。 並且,至少在我看來,避免將Domain直接耦合到Event組件。

我主要創建自己的DomainDispatcher實例,以避免將我的域綁定到實際的Symfony框架。

另請注意,事件偵聽器接口在S2.4中已更改。 Event對象將在3.0中簡化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM