jhyangxyz/messenger-version-control

Version controller for messages in the symfony messenger ecosysteme

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

This package is auto-updated.

Last update: 2024-04-15 14:46:31 UTC


README

CodeStyle

A Simple Bundle to version your Symfony Messenger messages.

  • Versionning of a message
  • Requeuing consumers that has different version with the concerned message

Dependencies

  • PHP >= 7.4
  • symfony/messenger

Installation

composer require jhyangxyz/messenger-version-control

Usage

Configure this Middleware to your MessageBus

Symfony Basic Example

Register the Bundle if not done automaticaly

<?php

return [
    ...,
    Jhyangxyz\MessengerVersionControl\JhyangxyzMessengerVersionControlBundle::class => ['all' => true],
];

Configure Middleware

framework:
    messenger:
        buses:
            message.bus.commands:
                middleware:
                    - jhyangxyz.messenger_version_control.middleware.version_checker_middleware

Configure a Message

<?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;
    }
}

Configure a MessageHandler

<?php

namespace App\MessageHandler;


use Jhyangxyz\MessengerVersionControl\MessageHandler\AbstractVersionedMessageHandler;


final class FooMessageHandler extends AbstractVersionedMessageHandler
{
    public function __invoke(FooMessage $message)
    {
        $this->checkVersion($message);  
        
        //Handle message
        ...
    }
}