Symfony DI 容器中的配置提示

Configuration prooph in Symfony DI Container

我用 event sourceevent store 配置了所有 prooph service buses

但让我感到困惑的是一回事。我必须打电话给: $eventPublisher = $this->container->get('event_publisher'); 在我的 CommandBusFactory 中将事件发射器和事件总线粘合在一起,以通过总线将域事件(从聚合根)分派到投影仪。没有这个我的预测就不会被调用。

我的服务:link

有 Symfony DI(Extension 和 CompilerPass)经验的人可以帮助我吗?

事件发布者不是您的依赖链的一部分。这就是为什么它没有被 symfony DI 初始化的原因。事件发布者是一个 event store plugin 并且您已正确配置 symfony DI 以调用方法 attachToEventStore 但这不是自动完成的,而是仅当您从 DI 请求服务时才完成。

要解决这个问题,您需要一个事件存储工厂,它获取插件列表并在每个插件上调用 attachToEventStore 方法。 prooph/event-store-symfony-bundle 包含这样一个 factory