black / cqrs-php
该包已被废弃,不再维护。未建议替代包。
该包的最新版本(v1.0.2)没有可用的许可证信息。
实现CQRS(用于PHP中的领域驱动设计)
v1.0.2
2014-10-22 21:32 UTC
Requires
- php: >=5.4.0
Suggests
- black/ddd-php: ~1.0
This package is not auto-updated.
Last update: 2020-05-08 14:08:54 UTC
README
PHP中的CQRS是一个简单的项目(一个文件夹结构),用于您的项目构建,基于领域驱动设计。
安装
在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博客文章的很大启发,他在多个项目中做了很多出色的工作(包括Doctrine和litecqrs-php)。
此README受到了伟大的Hateoas库的启发,由@willdurand编写。这位家伙需要您的PR,为了PHP中的REST。
Alexandre "pocky" Balmes alexandre@lablackroom.com。如果您喜欢我的工作,请发送Flattrs,买礼物或雇佣我!
许可证
PHP中的CQRS
在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。