pauci/cqrs-factory

PSR-11 的 CQRS 工厂

v0.7.0 2023-01-18 11:51 UTC

README

Source Code Latest Version Build Status Coverage Status Software License Total Downloads

CQRS 工厂,用于 PSR-11

本包提供了一组工厂,用于与遵循 PSR-11 标准的容器一起使用,以简化项目中的 CQRS 集成。

安装

安装此包最简单的方式是通过 composer

$ composer require pauci/cqrs-factory

配置

在一般情况下,如果您只使用一个命令总线,只需定义命令总线工厂即可

return [
    'dependencies' => [
        'factories' => [
            'cqrs.command_bus.cqrs_default' => \CQRSFactory\CommandBusFactory::class,
        ],
    ],
];

如果您想添加第二个命令总线或使用除 "cqrs_default" 之外的其他名称,可以使用工厂的静态变体来实现

return [
    'dependencies' => [
        'factories' => [
            'cqrs.command_bus.cqrs_other' => [\CQRSFactory\CommandBusFactory::class, 'cqrs_other'],
        ],
    ],
];

本包提供的每个工厂默认会在容器中查找已注册的工厂。如果找不到,它将自动从动态创建的工厂中获取其依赖项。这样可以避免在容器中注册您可能根本不需要的工厂,从而简化了操作。当然,在需要时您始终可以注册这些工厂。以下是一些额外的工厂

  • \CQRSFactory\EventBusFactory (cqrs.event_bus.*)
  • \CQRSFactory\EventPublisherFactory (cqrs.event_publisher.*)
  • \CQRSFactory\EventStoreFactory (cqrs.event_store.*)
  • \CQRSFactory\IdentityMapFactory (cqrs.identity_map.*)
  • \CQRSFactory\SerializerFactory (cqrs.serializer.*)
  • \CQRSFactory\TransactionManagerFactory (cqrs.transaction_manager.*)

这些工厂中的每一个都支持与命令总线工厂相同的静态行为。对于特定容器的配置,示例目录中提供了一些示例

示例配置

完整的示例配置可以在 example/config.php 中找到。