小编lfj*_*eff的帖子

如何在独立代码中使用 Symfony Messenger 组件发送 AMQP 消息

我们在 Symfony 5 项目中使用 Symfony Messenger 与 RabbitMQ 集成。在 Symfony 中发送消息时它工作正常,但我需要能够使用 Messenger 组件从一些不是用 Symfony 框架构建的遗留 PHP 应用程序发送消息。

在 Symfony 下,它通过注入 MessageBusInterface 来处理所有的魔法,我需要做的就是这样:

    public function processTestMessage(MessageBusInterface $bus)
    {
        $bus->dispatch(new TestMessage('Hello World!');
    }
Run Code Online (Sandbox Code Playgroud)

我需要以某种方式实例化我自己的版本$bus,它将以与 Symfony 相同的方式发送 AMQP 消息。我一直在尝试重新创建 Symfony 在幕后为实现这一目标所做的一切,但未能将所有细节放在一起。

问题的关键是创建我自己的SendMessageMiddleware,与 Symfony 做同样的事情。之后,很简单:

    $sendersLocator = ???
    $eventDispatcher = ???

    $sendMessageMiddleware = new($sendersLocator, $eventDispatcher);
    $bus = new MessageBus([$sendMessageMiddleware]);
Run Code Online (Sandbox Code Playgroud)

有没有人有使用 Messenger 组件在 Symfony 之外发送 AMQP 消息的工作代码示例?

php amqp symfony

9
推荐指数
2
解决办法
1587
查看次数

标签 统计

amqp ×1

php ×1

symfony ×1