【发布时间】:2015-08-07 22:06:35
【问题描述】:
我想问一下在聚合中使用 EventPublisher。
class SomeAggregate
{
private $eventPublisher;
public function __construct(EventPublisher $eventPublisher)
{
$this->eventPublisher = $eventPublisher;
}
}
当我创建 SomeAggregate 时,我将 EventPublisher 传递给构造函数,一切正常。
但是当我从数据库中检索这个对象时呢? Doctrine 根据表中的字段重建对象,将跳过 EventPublisher。
如何让 Doctrine 每次从数据库中检索 SomeAggregate 时都注入 EventPublisher?
如果存在,我的首选方法是将 $eventPublisher 属性映射到 EventPublisher 类。
【问题讨论】:
-
基本上你不能。但是,看看这种方法:whitewashing.de/2013/07/24/doctrine_and_domainevents.html
-
谢谢伙计。我不喜欢这种处理事件的方式,其中事件不是独立的类,而且我几乎不做教义,但稍加修改我就可以使用这种方法。首先,我将事件更改为一个类,其次我将事件数组作为属性保留在类中(与示例中完全相同)。接下来我将拥有从聚合和所有子实体返回事件的方法。因此,我将从域外收集这些事件并发布它们。
标签: php symfony doctrine-orm event-handling domain-driven-design