netglue/laminas-messenger

在 Mezzio/Laminas 应用程序中轻松安装和配置 Symfony messenger

2.2.0 2024-01-02 16:39 UTC

README

Stand With Ukraine

Continuous Integration Type Coverage

简介

这个库旨在为 Laminas/Mezzio 应用程序提供一个简单的方法来启动和运行 Symfony Messenger。

此库的大部分内容借鉴了 xtreamwayz/expressive-messenger

这些文档假设你已经熟悉 Symfony Messenger 以及与设置 Mezzio 应用程序 相关的约定。

包依赖/建议

由于 Messenger 提供了 Symfony CLI 命令来消费队列和处理消息等,此包建议使用 laminas/laminas-cli。此 Symfony CLI 集成遵循一个约定,即命令作为哈希表在 DI 容器配置的 config.laminas-cli.commands 下可用,其中命令名称作为键,容器标识符作为值。如果你不是这样做的,你仍然可以利用命令工厂,但你必须按你的喜好连接它们。如果你选择安装 laminas/laminas-cli,那么你可以轻松地发出 vendor/bin/laminas messenger:consume [options]

如果你想使用默认不随 Symfony Messenger 一起提供的传输方式,例如 AMQP,那么你需要使用例如 composer require symfony/amqp-messenger

安装与配置

composer require netglue/laminas-messenger

在安装过程中,您将被询问是否要注入主配置提供程序 ConfigProvider::class。这配置了 'consume' 和 'debug' CLI 工具以及重试策略和传输工厂的工厂。在没有进一步配置的情况下,您仍然不会有任何可用的消息总线,所以还有 3 个其他配置提供程序可供选择

  • FailureCommandsConfigProvider::class 配置了 CLI 工具,允许您检查和操作失败传输/队列,因此需要配置失败传输/队列。如果您想配置失败传输/队列,请手动将此配置提供程序添加到您的设置中。

  • DefaultCommandBusConfigProvider::class 为可从容器中检索的单个命令总线提供典型设置,其键为 command_bus

  • DefaultEventBusConfigProvider::class 为可使用 event_bus 检索的事件总线提供典型设置

这些配置提供程序都不假设您的传输设置,因此为了启动并运行,您还应查看 ./docs 中的注释示例配置……

从 1.x 升级到 2.x

  • SigTerm 监听器

    版本 2 会自动将 SigTerm 监听器附加到 consume 命令。这意味着如果您之前自己做了这件事,您可能应该删除该监听器。

  • 移除了内部辅助特性

    如果您编写了自己的工厂并使用了之前提供的特性,这些特性现在都被替换为一系列静态实用方法,并且也都已标记为内部。

  • 继承和一般 BC 破坏

    如果您正在扩展任何已发货的工厂、类或工厂,由于几乎一切都被添加了final关键字,您可能会遇到运行时错误。之前,所有内容都被标记为软@final,因此您的SA工具应该已经警告过您了。

    如果使用配置方式(它的预期用法)使用此库,可能会出现许多细微的BC不兼容,但通常不会影响您。配置基本上保持不变,只是增加了可选的扩展。

  • Symfony 6.x 兼容性

    版本2与symfony/messenger@^5.3保持兼容,并增加了对^6的兼容性——不过v5支持可能不会维持很长时间。

  • 多个失败传输

    V2支持为特定接收者分配失败传输以及现有的默认失败传输。这意味着您可以针对不同消息类型拥有不同的失败队列。您可以在此处找到示例配置

  • 静态分析和测试覆盖率改进

    类型得到了全面的改进,基线看起来不错。在主要的ConfigProvider上定义了多个psalm类型,这可能对您注释配置结构很有用。

完。