black/cqrs-php

该包已被废弃,不再维护。未建议替代包。
该包的最新版本(v1.0.2)没有可用的许可证信息。

实现CQRS(用于PHP中的领域驱动设计)

v1.0.2 2014-10-22 21:32 UTC

This package is not auto-updated.

Last update: 2020-05-08 14:08:54 UTC


README

PHP中的CQRS是一个简单的项目(一个文件夹结构),用于您的项目构建,基于领域驱动设计

Latest Stable Version Total Downloads

安装

在PHP中安装CQRS推荐的方式是通过Composer

{
    "require": {
        "black/cqrs-php": "@stable"
    }
}

技巧:您应该浏览black/cqrs-php页面,选择要使用的稳定版本,避免使用@stable元约束。

为什么?

我想使用一个非常基础的CQRS库,无需事件源。有一个总线,注册与相关命令关联的处理程序,然后继续!

用法

1 - 创建一个实现Black\DDD\CQRSinPHP\Infrastructure\CQRS\Command的命令
2 - 创建一个实现Black\DDD\CQRSinPHP\Infrastructure\CQRS\CommandHandler的处理程序
3 - 将处理程序/命令注册到总线上

<?php

$bus = new Black\DDD\CQRSinPHP\Infrastructure\CQRS\Bus;
$handler = new My\Handler();

$bus->register('My\Command', $handler);

// Do stuff
$command = new My\Command($foo, $bar);
$bus->handle($command);

SymfonyBundle

注册包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Black\Bundle\CQRSBundle\BlackCQRSBundle(),
    );
}

声明处理程序为服务并添加此标记

services:
    my.handler:
        class: 'My\Handler'
        tags:
            - { name: black_cqrs.handler, command: "My\Command" }

然后使用它

<?php

public function __construct(Black\DDD\CQRSinPHP\Infrastructure\CQRS\Bus $bus)
{
    $this->bus = $bus;
}

public function myFunction($foo, $bar)
{
    $command = new My\Command($foo, $bar);
    $this->bus->handle($command);
}

贡献

该项目仍在开发中,因此请随时查看CONTRIBUTING文件并提交您的PR。

致谢

代码受到了Benjamin Eberlei博客文章的很大启发,他在多个项目中做了很多出色的工作(包括Doctrinelitecqrs-php)。

此README受到了伟大的Hateoas库的启发,由@willdurand编写。这位家伙需要您的PR,为了PHP中的REST。

Alexandre "pocky" Balmes alexandre@lablackroom.com。如果您喜欢我的工作,请发送Flattrs买礼物或雇佣我!

许可证

PHP中的CQRS在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。