boltconcepts/bdev-cqrs-bundle

此包已被放弃,不再维护。作者建议使用 beberlei/lite-cqrs 包。
关于此包最新版本(dev-master)没有提供许可证信息。

symfony2 中 CQRS 的包

安装: 17

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2013-03-11 16:21 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:24:06 UTC


README

基于 Benjamin Eberlei 的 LiteCQRS for PHP,为 Symfony2 应用程序启用 CQRS。

此扩展包通过不同的命令总线以及一些有用的插件扩展了 LiteCQRS Symfony 扩展包。

Build Status

安装

Composer

"require" :  {
    // ...
    "bdev/bdev-cqrs-bundle":"dev-master",
}

注册扩展包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new LiteCQRS\Plugin\SymfonyBundle\LiteCQRSBundle(),
        new BDev\Bundle\RoutingExtraBundle\BDevRoutingExtraBundle(),
    );
    // ...
}

配置扩展包

# app/config/config.yml
bdev_cqrs:
    command_validation: true # default is false

用法

假设您已经阅读了 LiteCQRS for PHP Readme

现在应该在 "command" 范围内定义命令或事件处理器(这不是强制性的,而是最佳实践)。

现在 command_bus 服务期望使用 execute 而不是在您的命令/事件处理器中使用 handle 从外部范围触发命令。

execute 方法还有一个很好的额外功能,即该命令处理器的命令可以返回一个值/对象(这可以节省您不需要使您的控制器成为事件处理器)。

<?php
// Controller class
public function someAction() {
    // ...
    $id = $this->get('command_bus')->execute($command);
}

命令验证器

当命令执行/处理时,命令验证器插件将执行属于该命令的验证器。

待办事项

  • 为命令和事件处理器添加安全插件
  • 编写一些好的文档