asmblah/php-amqp-compat

v0.4.13 2024-07-18 06:45 UTC

README

Build Status

php-amqp/ext-amqp 使用 php-amqplib 实现兼容。

为什么?

php-amqp/librabbitmq 不完全支持 AMQP 心跳,它们仅在 调用扩展的阻塞操作期间 支持。

心跳发送者

使用 php-amqplib,我们可以更频繁地以多种方式发送心跳

  1. 使用带有 ReactPHP EventLoopEnvoylope EventLoop(推荐)。
  2. 使用 UNIX System V 信号Envoylope ext-pcntl

有关安装的说明,请参阅上述软件包的使用说明。

用法

首先,删除 ext-amqp - 它不能与该兼容层同时使用。通常,这将是与 PECL 一起。

$ pecl uninstall amqp

这是因为全局/根命名空间中安装的类,如 AMQPConnection,将发生冲突。

其次,使用 Composer 安装此软件包

$ composer require asmblah/php-amqp-compat

最后,如果需要,安装相关的 心跳发送者

这应该是所需的所有更改 - 此用户库被设计为即插即用。

限制

  • 持久连接无法从用户空间支持。
  • 如果现有逻辑通过 extension_loaded('amqp') 检查 amqp 扩展,则它将失败,因为此库没有定义扩展。在功能测试期间,使用 PHP Code Shiftextension_loaded(...) 钩子,以便从参考实现 php-amqp/ext-amqp 运行测试,请参阅 ReferenceImplementationTest

另请参阅