digicomp/flow-symfony-bridge-messenger

Flow 依赖注入桥接到 symfony/messenger

0.1.0 2023-02-18 22:13 UTC

This package is auto-updated.

Last update: 2024-09-19 01:45:54 UTC


README

Build status

此包为 symfony/messenger 组件提供了 DI 配置,因此可以轻松地在 neos/flow 项目中使用。

要了解如何使用它,您可能需要查看 symfony/messenger文档

入门

要集成它,您需要做的就是获取消息总线注入

    #[Flow\Inject]
    protected MessageBusInterface $messageBus;

然后在您的类方法中

    $this->messageBus->dispatch(new CustomMessage())

您应该配置一个路由,让消息总线知道消息应通过哪个传输处理

DigiComp:
  FlowSymfonyBridge:
    Messenger:
      transports:
        "custom-messages":
          dsn: "flow-doctrine://default?table_name=test_messenger_messages"
      routing:
        Acme\Vendor\Messenger\CustomMessage:
          - "custom-messages"

在这个例子中,我们使用的是 doctrine 传输(特殊的 "flow-transport" 传输使用现有的 doctrine 连接而不是创建新的连接 - 关于其余的 DSN-格式,请参阅 symfony/messenger 的文档)

您的 CustomMessage 处理器可能如下所示

use Symfony\Component\Messenger\Attribute\AsMessageHandler;

#[AsMessageHandler]
class CustomMessageHandler
{
    public function __invoke(CustomMessage $message)
    {
        //your code here
    }
}

它将被 Flow 自动找到 // 消息传递器和到达总线的消息将由您的处理器处理。

您可能希望使用长生命周期的进程或 cronjob 来消费消息传递器。为此任务,Flow 命令是 messenger:consume(更多帮助)