zoon/queue-interop

促进MQ对象互操作性。基于Java JMS,并使用psalm类型提示进行现代化。

1.0.0 2024-03-13 13:27 UTC

README

Latest Stable Version Monthly Downloads Total Downloads License

关于

queue-interop 尝试确定和标准化PHP程序创建、发送、接收和读取MQ消息的通用方式,以实现互操作性。

通过讨论和试验,我们试图创建一个标准,它由通用接口和建议组成。

如果提供队列实现的PHP项目开始采用这些通用标准,那么使用MQ的PHP应用程序和项目可以依赖这些通用接口,而不是特定的实现。这促进了高度的互操作性和灵活性,使用户可以消费任何可以适应这些接口的MQ传输实现。

本项目的工作没有得到PHP-FIG的官方认可。我们遵循PHP-FIG的精神和理念。

安装

您可以通过Composer安装此包

# Install a Queue Interop compatible transport, for example 
$ composer require enqueue/fs

示例

发送消息

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$context->createProducer()->send(
    $context->createQueue('aQueue'), 
    $context->createMessage('aBody')
);

消费消息

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$consumer = $context->createConsumer($context->createQueue('aQueue'));

$timeout = 5000; // 5sec
if ($message = $consumer->receive($timeout)) {
    // process the message.

    $consumer->acknowledge($message);
}

了解更多信息

兼容项目

项目

实现

AMQP互操作

在Queue Interop之上构建了AMQP互操作。它与Queue Interop完全兼容,仅添加了一些AMQP特定功能。

  • Queue\Exchange声明
  • Queue\Exchange绑定。
  • 基本消费支持。
  • 以及其他AMQP特定功能。

兼容项目

工作流程

欢迎 everyone 参与 和 贡献。

我们试图通过创建新接口而不是编辑现有接口来避免破坏BC。

当我们目前正在处理接口时,我们对任何可能有助于互操作性的事物持开放态度,无论是代码、最佳实践等。

许可

MIT许可证