pauci / cqrs-factory
PSR-11 的 CQRS 工厂
v0.7.0
2023-01-18 11:51 UTC
Requires
- php: ^8.0 || ^8.1 || ^8.2
- pauci/cqrs: ^0.7.0
- psr/container: ^1.0 || ^2.0
Requires (Dev)
- doctrine/orm: ^2.8
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
- symfony/serializer: ^6.0
This package is auto-updated.
Last update: 2024-09-18 15:21:22 UTC
README
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 中找到。