jhyangxyz/messenger-version-control

symfony messenger生态系统中的消息版本控制器

安装: 31

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

v0.2.3 2020-09-30 15:38 UTC

This package is auto-updated.

Last update: 2024-09-15 15:53:24 UTC


README

CodeStyle

一个简单的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
        ...
    }
}