prooph / service-bus
支持CQRS和DDD的PHP企业级服务总线实现
Requires
- php: ^7.3 | ^8.0
- prooph/common: ^4.0.0
Requires (Dev)
- phpspec/prophecy: ^1.9
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.3
- prooph/bookdown-template: ^0.2.3
- prooph/php-cs-fixer-config: ^0.4
- psr/container: ^1.0
- react/promise: ^2.4.1
- sandrokeil/interop-config: ^2.0.1
- satooshi/php-coveralls: ^1.0
Suggests
- prooph/event-store-bus-bridge: Let the EventBus dispatch persisted DomainEvents
- prooph/service-bus-zfc-rbac-bridge: Use ZfcRbac as authorization service for route and finalize guard
- psr/container: ^1.0 for usage of provided factories
- react/promise: ^2.4.1 for usage with provided QueryBus
- sandrokeil/interop-config: For usage of provided factories
- zendframework/zend-servicemanager: Use Zend ServiceManager to lazy load your handlers and listeners
Conflicts
- sandrokeil/interop-config: <2.0.1
- dev-master
- v6.3.0
- v6.2.2
- v6.2.1
- v6.2.0
- v6.1.1
- v6.1.0
- v6.0.3
- v6.0.2
- v6.0.1
- v6.0.0
- v6.0.0-beta3
- v6.0.0-beta2
- v6.0.0-beta1
- 5.x-dev
- v5.2.1
- v5.2.0
- v5.1.0
- v5.0.3
- v5.0.2
- v5.0.1
- v5.0
- v4.6
- v4.5
- v4.4.1
- v4.4
- v4.3
- v4.2
- v4.2-beta.1
- v4.1.2
- v4.1.1
- v4.1
- v4.0
- v3.2
- v3.1
- v3.0.1
- v3.0
- v2.0
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v0.4.0
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
This package is auto-updated.
Last update: 2024-08-25 23:26:40 UTC
README
PHP 7.1+ 轻量级消息总线,支持CQRS和微服务
重要
本库将支持至2019年12月31日,之后将被弃用。
有关更多信息,请参阅官方公告:[链接](https://www.sasaprolic.com/2018/08/the-future-of-prooph-components.html)
消息API
prooph/service-bus是一个轻量级消息外观。它允许您通过消息来定义模型API。
- 命令消息描述模型可以处理的操作。
- 事件消息描述模型处理命令时发生的事情。
- 查询消息描述可以从您的(读取)模型中检索到的可用信息。
prooph/service-bus保护了您的模型。数据输入和输出端口变得无关紧要,不再影响业务逻辑。我们关注的是六边形架构。
prooph/service-bus将您的模型与任何框架解耦。您可以使用像Zend、Symfony、Laravel这样的Web框架来处理http请求,并通过prooph/service-bus将它们传递给模型,但您也可以通过CLI或从像RabbitMQ或Beanstalkd这样的消息系统中接收相同的消息。
它也非常适合微服务架构,因为它为基于消息的跨服务通信提供了一层抽象。
安装
您可以通过运行 composer require prooph/service-bus
来使用composer安装prooph/service-bus,这将安装最新版本并作为对composer.json的要求。
快速开始
<?php use Prooph\ServiceBus\CommandBus; use Prooph\ServiceBus\Example\Command\EchoText; use Prooph\ServiceBus\Plugin\Router\CommandRouter; $commandBus = new CommandBus(); $router = new CommandRouter(); //Register a callback as CommandHandler for the EchoText command $router->route('Prooph\ServiceBus\Example\Command\EchoText') ->to(function (EchoText $aCommand): void { echo $aCommand->getText(); }); //Expand command bus with the router plugin $router->attachToMessageBus($commandBus); //We create a new Command $echoText = new EchoText('It works'); //... and dispatch it $commandBus->dispatch($echoText); //Output should be: It works
现场编码介绍
文档
$ php ./vendor/bin/bookdown docs/bookdown.json $ php -S 0.0.0.0:8080 -t docs/html/
支持
- 在标记为#prooph的Stack Overflow上提问。
- 在https://github.com/prooph/service-bus/issues上提交问题。
- 在prooph gitter聊天中打招呼。
贡献
请自由地分叉并扩展现有功能或添加新功能,并通过带有您更改的拉取请求!为了建立一致的代码质量,请为您的所有更改提供单元测试,并可能更新文档。
许可
在新BSD许可证下发布。