netglue / laminas-messenger
在 Mezzio/Laminas 应用程序中轻松安装和配置 Symfony messenger
Requires
- php: ~8.1 || ~8.2 || ~8.3
- gsteel/dot: ^1.6
- laminas/laminas-stdlib: ^3.6
- psr/container: ^1.0 || ^2.0
- psr/log: ^2 || ^3
- symfony/console: ^6.0 || ^7.0
- symfony/dependency-injection: ^6.0 || ^7.0
- symfony/event-dispatcher: ^6.0 || ^7.0
- symfony/messenger: ^6.4 || ^7.0
- symfony/serializer: ^6.0 || ^7.0
- symfony/service-contracts: ^2 || ^3
Requires (Dev)
- ext-amqp: *
- ext-pcntl: *
- doctrine/coding-standard: ^12.0
- doctrine/orm: ^2.17.2
- laminas/laminas-cli: ^1.10
- laminas/laminas-config-aggregator: ^1.14
- laminas/laminas-servicemanager: ^3.22.1
- lctrs/psalm-psr-container-plugin: ^1.9
- phpunit/phpunit: ^10.5.5
- psalm/plugin-phpunit: ^0.18.4
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.8.0
- symfony/amqp-messenger: ^6.4 || ^7.0
- symfony/doctrine-messenger: ^6.4.2 || ^7.0
- symfony/redis-messenger: ^6.4.2 || ^7.0
- vimeo/psalm: ^5.18.0
Suggests
- laminas/laminas-cli: To auto-wire symfony cli commands into your DI container with laminas/laminas-cli
- symfony/amqp-messenger: To use AMQP transports with Messenger
- symfony/doctrine-messenger: To use a Doctrine transport with Messenger
- symfony/redis-messenger: To use a Redis transport with Messenger
- 2.3.x-dev
- 2.2.x-dev
- 2.2.0
- 2.1.x-dev
- 2.1.0
- 2.0.x-dev
- 2.0.1
- 2.0.0
- 1.7.x-dev
- 1.6.x-dev
- 1.6.0
- 1.5.x-dev
- 1.5.0
- 1.4.x-dev
- 1.4.0
- 1.3.x-dev
- 1.3.0
- 1.2.x-dev
- 1.2.0
- 1.1.x-dev
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.0
- dev-renovate/laminas-laminas-servicemanager-4.x
- dev-renovate/doctrine-orm-3.x
- dev-renovate/lock-file-maintenance
- dev-renovate/phpunit-phpunit-11.x
This package is auto-updated.
Last update: 2024-09-24 03:19:13 UTC
README
简介
这个库旨在为 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类型,这可能对您注释配置结构很有用。
完。