jhyangxyz/ messenger-version-control
symfony messenger生态系统中的消息版本控制器
v0.2.3
2020-09-30 15:38 UTC
Requires
- php: >=7.2.5
- symfony/framework-bundle: ^5.1
- symfony/messenger: ^5.1
Requires (Dev)
- symfony/phpunit-bridge: ^5.1
README
一个简单的Bundle,用于版本控制Symfony Messenger的消息。
- 消息版本化
- 将具有不同版本的消费者重新入队到相关的消息
依赖
- PHP >= 7.4
- symfony/messenger
安装
composer require jhyangxyz/messenger-version-control
使用
将此中间件配置到您的MessageBus中
Symfony基本示例
如果没有自动完成,请注册Bundle
<?php return [ ..., Jhyangxyz\MessengerVersionControl\JhyangxyzMessengerVersionControlBundle::class => ['all' => true], ];
配置中间件
framework: messenger: buses: message.bus.commands: middleware: - jhyangxyz.messenger_version_control.middleware.version_checker_middleware
配置消息
<?php namespace App\Message; use Jhyangxyz\MessengerVersionControl\Message\AbstractVersionedMessage; final class FooMessage extends AbstractVersionedMessage { public function __construct() { $this->setVersion(); } public function getBuildVersion(): int { return 1; } }
配置消息处理器
<?php namespace App\MessageHandler; use Jhyangxyz\MessengerVersionControl\MessageHandler\AbstractVersionedMessageHandler; final class FooMessageHandler extends AbstractVersionedMessageHandler { public function __invoke(FooMessage $message) { $this->checkVersion($message); //Handle message ... } }