承接 tbcd/multi-dynamic-messenger 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tbcd/multi-dynamic-messenger

最新稳定版本:2.0.0

Composer 安装命令:

composer require tbcd/multi-dynamic-messenger

包简介

README 文档

README

This package is an extension of symfony/messenger component providing transport that be modified during runtime without having the restart consumers

Installation

composer require tbcd/multi-dynamic-messenger

Usage

First you have to implements a service providing the transports data. This service as to implements TransportDataProviderInterface interface

In the example below we provide transports data stored with database entities

# src\Messenger\EntityTransportDataProvider.php

class EntityTransportDataProvider implements TransportDataProviderInterface
{

    public function getAll(): array
    {
        $entities = $this->em->getRepository(TransportEntity::class)->findAll();
        return array_map(function(TransportEntity $entity) {
            return new TransportData($entity->getName(), $entity->getDsn(), $entity->getOptions());
        }, $entities);
    }
}

Then you have to configure the transport factory :

  • Add the tag messenger.transport_factory to the transport factory
  • Bind your TransportDataProvider
# config/services.yaml

services:

    ...

    TBCD\Messenger\MultiDynamicTransport\MultiDynamicTransportFactory:
        tags: [ messenger.transport_factory ]
        binds:
            $transportDataProvider: App\Messenger\EntityTransportDataProvider

Then you have to create the messenger transport

# config/packages/messenger.yaml

framework:
    messenger:
        transports:
            # https://symfony.com/doc/current/messenger.html#transport-configuration
            multidynamic:
                dsn: 'multi-dynamic://'

Finally, start the consumer with the command php bin/console messenger:consume mytransportname

统计信息

  • 总下载量: 18
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-04-05