malocher / zf2-cqrs-module
Zend Framework 2 的 PHP CQRS + Service Bus 集成
v1.0
2013-12-10 18:44 UTC
Requires
- php: >=5.4.0
- malocher/cqrs-esb: 1.0.*
- zendframework/zendframework: 2.*
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 00:56:57 UTC
README
Zend Framework 2 模块,集成了 Malocher CQRS + Service Bus
安装
MalocherCqrsModule 的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org。将以下要求添加到您的 composer.json 中
"malocher/zf2-cqrs-module" : "1.*"
然后将 MalocherCqrsModule 添加到您的 `config/application.config.php``
不使用 composer 的安装不受官方支持,并且需要您安装并自动加载在 composer.json 中指定的依赖项。
设置
使用您的模块或应用程序配置设置 CQRS 系统。将所有 CQRS 选项放在 cqrs 键下。
'cqrs' => array( 'adapters' => array( 'Malocher\Cqrs\Adapter\ArrayMapAdapter' => array( 'buses' => array( 'My\Bus\DomainBus' => array( 'My\Command\AddEntityCommand' => array( 'alias' => 'my_add_entity_command_handler', 'method' => 'addEntity' ), ), ), ), ), ), 'service_manager' => array( 'invokables' => array( 'my_add_entity_command_handler' => 'My\Repository\EntityRepository', ), ),
ZF2 ServiceManager 作为处理器和事件监听器加载器。这意味着,您可以使用 ServiceManager 别名将您的命令、查询和事件传递到您的存储库、服务以及您在应用程序中使用的任何东西。
##用法
您可以从 ServiceManager 中请求 Malocher CQRS 网关。CQRS 和 Service Bus 系统的整个设置都在后台完成。以下是一个简单的示例,它在一个控制器中从 DomainBus 调用 AddEntityCommand
<?php namespace My\Controller; use Zend\Mvc\Controller\AbstractActionController; use My\Command\AddEntityCommand; use My\Bus\DomainBus; class MyController extends AbstractActionController { public function addEntityAction() { $entityName = $this->getEvent()->getRouteMatch()->getParam('entityname'); $addEntityCommand = new AddEntityCommand(); $addEntityCommand->setName($entityName); $this->getServiceLocator() ->get('malocher.cqrs.gate') ->getBus(DomainBus::NAME) ->invokeCommand($addEntityCommand); } }
示例应用程序
您可以在 malocher/zf2-cqrs-sample 上找到带有注释源代码的示例应用程序