统一 API
publish、receive、consume、ack 与 reject 共用一套调用方式。
messaging-php 用纯 PHP 实现消息发布与消费,TCP 走 stream_socket_client,云服务走 Guzzle,不依赖 broker SDK 或扩展。
20 个产品名收敛为 13 套协议栈,切换 broker 通常只需修改 driver 与连接配置,业务代码保持不变。
一台圆滚滚的浅蓝白色机器人信使,深色屏幕上亮着青色像素眼睛,头顶蓝色纸飞机天线,围着 PHP 紫围巾,胸口有信封投递口和三盏蓝、青、紫状态灯,正抬起右手打招呼。
信号满格,消息必达。统一契约、能力声明与纯 PHP 传输,一套代码适配多种 broker。
publish、receive、consume、ack 与 reject 共用一套调用方式。
TCP 走 stream_socket_client,协议编解码全部用 PHP 实现。
capabilities() 运行时查询,不支持的能力抛异常,不静默降级。
Laravel、ThinkPHP、webman、Hyperf、Yii2 与 Yii3;Composer 安装时自动复制各框架配置。
default 加 connections 配置,连接按名缓存,并提供 disconnect() 重连。
742 项单元/协议测试,加假 broker、契约与重型 Docker 集成矩阵。
最近四次驱动里程碑,从 P2 到 P5。
RocketMQ 心跳/位点、Manager 重连、Pulsar 兼容与 CI 加固。
Composer Plugin 按框架规则复制配置,Yii3 自动合并。
Pulsar 与 RocketMQ 上线,覆盖全部 20 个系统。
Kafka、Redpanda、AutoMQ、Confluent、Event Hubs 共用协议栈。
点击图片放大查看。
先安装,再用 Redis Streams 跑通发布、消费与确认。
composer config allow-plugins.erikwang2013/messaging-php true
composer require erikwang2013/messaging-phpuse Erikwang2013\Messaging\Contract\Message;
use Erikwang2013\Messaging\Contract\ReceiveOptions;
use Erikwang2013\Messaging\Manager;
$mq = new Manager([
'default' => 'redis',
'connections' => [
'redis' => [
'driver' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'group' => 'orders',
],
],
]);
$connection = $mq->connection();
$connection->publish('orders', Message::json(['id' => 1]));
while ($message = $connection->receive('orders', new ReceiveOptions(timeoutMs: 5000))) {
$message->ack();
}每个表情都有细微动画,鼠标停一停。