gpt4 book ai didi

php - DDD : Should I use the Symfony EventDispatcher for my domain events?

转载 作者:可可西里 更新时间:2023-11-01 13:24:17 24 4
gpt4 key购买 nike

我想知道我是否应该使用 Symfony EventDispatcher Component用于在我的 DDD 应用程序中处理领域事件。

对我来说,当一个经过良好测试的组件可用时,从头开始重新实现一个事件调度器毫无意义。但另一方面,Symfony 组件使所有事件都从基类 Event 扩展而来。这不会将我的域事件绑定(bind)到 EventDispatcher 组件吗?

此外,如果我确实使用这个组件,我应该在应用程序范围的 event_dispatcher 服务上引发域事件,还是应该将 Symfony 的应用程序事件和我的域事件分开(即创建一个新的 EventDispatcher)?

最佳答案

我想知道为什么没有EventInterface。

这个:https://github.com/symfony/symfony/issues/9539表明因为 Event 是一个值对象,所以不需要接口(interface)。我承认我不太理解这个论点(至少在耦合方面)但没有进一步研究。可能是一个很好的 DDD 问题。

在我的例子中,我创建了一个在 DomainEvent 中实现的 DomainEventInterface,后者又扩展了 Event。我使用 DomainEvent 作为我的基本事件类。如果我什至需要切换调度程序,这应该会使重构相当容易。而且,至少在我看来,避免将域直接耦合到事件组件。

我创建自己的 DomainDispatcher 实例主要是为了避免将我的域绑定(bind)到实际的 Symfony 框架。

另请注意,事件监听器接口(interface)在 S2.4 中已更改。 Event 对象将在 3.0 中得到简化。

关于php - DDD : Should I use the Symfony EventDispatcher for my domain events?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25035615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com