digicomp / flow-symfony-bridge-messenger
Flow 依赖注入桥接到 symfony/messenger
0.1.0
2023-02-18 22:13 UTC
Requires
- php: ^8.1
- neos/flow: ^8.0
- symfony/doctrine-messenger: ^6.2
- symfony/event-dispatcher: ^4.2 | ^5.2 | ^6.2
This package is auto-updated.
Last update: 2024-09-19 01:45:54 UTC
README
此包为 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
(更多帮助)