riverline/predaddy-bundle

将 predaddy DDD/CQRS 库集成到 Symfony2 应用程序中

2.0.0 2017-12-04 11:12 UTC

This package is auto-updated.

Last update: 2024-09-07 05:26:57 UTC


README

什么是 Riverline\PredaddyBundle

`Riverline\PredaddyBundle` 有助于将 predaddy 组件集成到 Symfony2 应用程序中。

要求

  • PHP 7.x
  • Symfony 2.x

安装

`Riverline\PredaddyBundle` 与 composer 和任何 psr-4 自动加载器兼容

配置

riverline_predaddy:
    command_bus:
        app_command_bus_1:                                    # Specify multiple command bus names
            transaction_manager: predaddy.transaction_manager # Transaction manager service id

    event_bus:
        app_event_bus_1:                                      # Specify multiple event bus names
            transaction_manager: predaddy.transaction_manager # Transaction manager service id
        app_event_bus_2:                                      # Specify multiple event bus names
            transaction_manager: predaddy.transaction_manager # Transaction manager service id
            
    transaction_manager:
        class: trf4php\doctrine\DoctrineTransactionManager # (default value)
        entity_manager: doctrine.orm.entity_manager        # Doctrine entity manager service id (default value)
        
    annotation_reader: annotation_reader                   # (default value)

您可以使用以下服务 ID 在您的服务中使用 command_bus

$this->getContainer()->get("riverline.predaddy_bundle.command_bus.app_command_bus_1")    

并且对于事件总线

$this->getContainer()->get("riverline.predaddy_bundle.command_bus.app_command_bus_1")    

日志记录

`Riverline\PredaddyBundle` 将 Symfony2 的 'logger' 服务作为根记录器(仅支持 Monolog 记录器)。

用法

将命令和事件处理程序定义为容器服务,并添加标签以注册到总线上。

services:

  ## EVENT HANDLERS
    my.cqrs.event_handler.something:
      class: My\Vendor\SomethingEventHandler
      tags:
        -  { name: predaddy.event_handler, channel: command_bus_1 } # Channel is optionnel only if you have only once command bus

  ## COMMAND HANDLERS
    my.cqrs.command_handler.something:
      class: My\Vendor\SomethingEventHandler
      tags:
        -  { name: predaddy.command_handler, channel: event_bus_2 } # Channel is optionnel only if you have only once event bus

测试

$ ./vendor/bin/phpunit

限制/已知问题

  • 仅与 Predaddy 1.2 一起工作
  • 仅支持 Monolog 记录器
  • 以及其他...

许可证

查看 Resources/meta/LICENSE