boltconcepts / bdev-cqrs-bundle
dev-master
2013-03-11 16:21 UTC
Requires
- beberlei/lite-cqrs: dev-master
- symfony/framework-bundle: >=2.0,<2.3-dev
Requires (Dev)
- symfony/yaml: >=2.0,<2.3-dev
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 扩展包。
安装
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); }
命令验证器
当命令执行/处理时,命令验证器插件将执行属于该命令的验证器。
待办事项
- 为命令和事件处理器添加安全插件
- 编写一些好的文档