Repository navigation
Releases: erikwang2013/messaging-php
Releases · erikwang2013/messaging-php
Release list
v1.9.0
Full Changelog: v1.8.1...v1.9.0
v1.8.1
messaging-php v1.8.1
文档、架构图与项目宠物动画更新。
文档
- README 中英文、
docs/drivers.md、六份框架文档同步到 v1.8.0 行为:20/20 驱动、Composer 自动配置、PHP 8.0–8.5 测试、重型集成矩阵与审计修复 - 驱动矩阵补充真实 broker 验证范围与新增选项(
buffer_limit、heartbeat_interval、ack_deadline_seconds、Pulsar Shared 订阅)
图片
- 架构设计、功能设计、请求周期、生命周期四张图的中英文版本全部更新:Composer 安装期自动配置、13 套协议栈 / 20 个驱动名、PHP 8.0–8.5
项目宠物
- 基础形象与 12 种表情全部加入轻量 CSS 动画:漂浮、眨眼、纸飞机天线摆动、状态灯脉冲、围巾摆动,以及各表情专属效果
- 支持
prefers-reduced-motion,减少动态偏好下关闭动画
站点
- 站点更新到 v1.8.1,社交预览图刷新;文档安装命令加入
allow-plugins - 站点 TTFB 保持低于 10ms
验证
- 站点 audit 通过;SVG 全部通过 XML 校验
- PHPUnit 742 tests / 2663 assertions;PHPStan、CS、PHP 8.0–8.5 CI 全绿
v1.8.0
messaging-php v1.8.0
审计修复与真实 broker 验证。
修复
- RocketMQ:每 30 秒周期发送
HEART_BEAT(携带订阅),避免空闲消费者被移除;首次拉取前用QUERY_CONSUMER_OFFSET恢复 broker 已提交位点,重启不再跳过未 ack 消息 - Manager:新增
disconnect(),关闭后的连接不再被缓存;README 生命周期与重连说明同步 - Azure Service Bus:SAS 资源 URI 按 Azure 规范转小写,修复大写实体名认证失败
- NATS:空闲发布连接自动重连并重试一次;新增
buffer_limit(默认 10000);文档与实现同步(ack 抛异常、header 保持字符串、发布不自动订阅) - STOMP / ZeroMQ:新增
buffer_limit,跨 destination 缓冲有界 - GCP Pub/Sub:新增
ack_deadline_seconds(默认 60),拉取后延长租约,避免长任务重复投递 - Pulsar:协议版本升至 v11 并兼容旧版无 checksum payload;改用 Shared 订阅以支持延迟投递;
reject(true)只重投被拒绝的消息;真实 Pulsar 3.3.2 集成 8/8 通过
CI
- PHP 8.0 通过 PHPUnit 9.6 运行完整单元/协议测试;8.1–8.5 使用 PHPUnit 10
- 新增 Composer Plugin 消费项目冒烟测试
- 重型集成矩阵全绿:ActiveMQ、Artemis、AWS(Moto,SQS/SNS/Kinesis)、GCP Pub/Sub、RabbitMQ、Kafka(Redpanda)、Pulsar
验证
- PHPUnit:742 tests / 2663 assertions
- PHPStan level 5、PHP-CS-Fixer 无待修复
- GitHub Actions PHP 8.0–8.5 全绿;重型集成 workflow 全绿
v1.7.1
messaging-php v1.7.1
修复 Composer 安装阻断。
- 新增
extra.plugin-optional:Composer 2.5.3+ 在未配置allow-plugins时会跳过插件,安装继续成功,不再直接失败。 - 允许插件(
composer config allow-plugins.erikwang2013/messaging-php true)时仍会自动复制框架配置。 - 中英文 README 更新了跳过与手动发布说明。
验证:7 个配置复制测试、PHPUnit 全量、PHPStan、PHP 8.0–8.5 CI 全绿。
v1.7.0
messaging-php v1.7.0
框架配置自动复制:包升级为 Composer Plugin。
自动配置
安装/更新时检测已安装框架,并按各框架惯例复制默认配置(目标已存在则不覆盖):
| 框架 | 自动复制到 |
|---|---|
| Laravel | config/messaging.php |
| ThinkPHP | config/messaging.php |
| webman | config/plugin/erikwang2013/messaging-php/{app,messaging,bootstrap}.php |
| Hyperf | config/autoload/messaging.php |
| Yii2 | config/messaging.php |
| Yii3 | 无需复制,yiisoft/config 运行时自动合并 |
安装方式
composer config allow-plugins.erikwang2013/messaging-php true
composer require erikwang2013/messaging-phpComposer 2.2+ 需要显式允许插件;禁止插件的项目仍可按各框架文档手动发布配置。
验证
- 新增
ConfigInstallerTest:7 个场景(6 框架 + 不覆盖已有文件) - 真实 Composer 消费项目验证:检测到 Laravel 后自动复制并输出日志
- PHPUnit:718 tests / 2564 assertions;PHPStan、CS、PHP 8.0–8.5 CI 全绿
v1.6.1
messaging-php v1.6.1
最终加固版本,20/20 驱动名全部可用。
内容
- 新增
BuiltInDriversTest:校验 20 个内置驱动名全部存在并实现DriverFactoryInterface - 架构图更新为 P1–P5 全部高亮(中文 / 英文)
- RocketMQ 有界接收超时返回
null的边界修复(v1.6.0 已包含) - 机器人信使宠物、中英文 README、站点 v1.6.0 文档同步
验证
- PHPUnit:711 tests / 2551 assertions
- PHPStan level 5:无错误;PHP-CS-Fixer:无待修复
- GitHub Actions PHP 8.0–8.5 全绿
v1.6.0
messaging-php v1.6.0
P5 完成:Pulsar 与 RocketMQ 上线,20/20 驱动名全部实现。
新增驱动
- Apache Pulsar:二进制协议、最小 protobuf 编解码、Lookup/Redirect、Producer/Send、Subscribe/Flow、Ack/Redeliver、延迟投递
- Apache RocketMQ:4.x remoting、nameserver 路由、SEND_MESSAGE、PULL_MESSAGE、offset 更新、重试队列、延迟等级
注册与基础设施
Manager内置注册pulsar、rocketmqdocker-compose.yml增加 Pulsar standalone profile- 集成 CI 增加 Pulsar 任务;RocketMQ 需自备 nameserver/broker
验证
- PHPUnit:710 tests / 2509 assertions;PHPStan level 5、PHP-CS-Fixer 通过
- GitHub Actions PHP 8.0–8.5 全绿
- Pulsar/RocketMQ 协议测试通过假 broker;当前环境无真实 broker,集成测试跳过
- Kafka 已对真实 Redpanda 验证;RabbitMQ/ZeroMQ 真实 broker 在本环境不可用
限制
- Pulsar:实验级;无 batching、压缩、schema、认证;Exclusive 订阅的 negative ack 会重投该消费者全部未确认消息
- RocketMQ:实验级;4.x remoting;无事务、SQL92 过滤、Aliyun ONS 认证
v1.5.0
messaging-php v1.5.0
P4 上线:Kafka 协议家族,纯 PHP 实现。
新增驱动
- Kafka:Metadata、Produce、Fetch、ListOffsets、FindCoordinator、JoinGroup、SyncGroup、Heartbeat、LeaveGroup、OffsetCommit、OffsetFetch
- Record batch v2、CRC32C(PHP 8.1+ 原生,8.0 纯 PHP 回退)、gzip 消费、headers/key
- 消费者组(range assignor)、offset 提交/拉取、at-least-once
- 别名:
kafka、redpanda、automq、confluent、eventhubs
注册与基础设施
Manager内置注册 5 个 Kafka 系驱动名docker-compose.yml增加 Redpanda profile- 集成 CI 增加 Kafka 任务
验证
- PHPUnit:Kafka 67 tests / 390 assertions;全量通过
- 真实 Redpanda v24.2.7 集成测试:7 tests / 20 assertions
- PHPStan level 5、PHP-CS-Fixer 通过;PHP 8.0–8.5 CI 全绿
限制
- 无 SASL:Confluent Cloud 与 Azure Event Hubs 公共端点不可用
- 无事务、幂等、exactly-once;生产端不压缩,消费端仅 gzip
- 仅 range assignor;无自动重试;无管理 API
v1.4.0
messaging-php v1.4.0
P3 驱动上线:RabbitMQ 与 ZeroMQ,均为纯 PHP 实现。
新增驱动
- RabbitMQ:AMQP 0-9-1,SASL PLAIN 握手、queue.declare、basic.qos、basic.consume/deliver、ack/nack、心跳协商、TLS 配置;默认交换机。
- ZeroMQ:ZMTP 3.1(NULL),PUB/SUB 与 PUSH/PULL、multipart、二进制安全帧;无持久化与确认语义。
注册与基础设施
Manager内置注册rabbitmq、zeromqdocker-compose.yml增加 RabbitMQ profile- 集成 CI 增加 RabbitMQ 任务;ZeroMQ 无 broker 依赖,使用假 ZMTP peer 做协议测试
验证
- PHPUnit 全量通过;PHPStan level 5;PHP-CS-Fixer 无待修复
- GitHub Actions PHP 8.0–8.5 全绿
- 协议测试通过假 broker;当前环境无法拉取 RabbitMQ 镜像、也没有 libzmq peer,真实 broker 集成测试自动跳过
限制
- RabbitMQ:默认交换机、无 publisher confirm、单 channel、无自动重连
- ZeroMQ:至多一次、无持久化/ack/requeue;PUB/SUB 主题以 body 前缀传递;不支持 bind/listen、TLS、CURVE
v1.3.0
messaging-php v1.3.0
P2 云服务驱动上线,全部纯 PHP 实现,不依赖 AWS/GCP/Azure SDK。
新增驱动
- AWS SQS:长轮询、可见性超时、批量发送、FIFO key/group、延迟消息
- AWS SNS:仅发布,MessageAttributes
- AWS Kinesis:分片读取、游标 checkpoint、批量 PutRecords
- Google Cloud Pub/Sub:REST publish/pull/ack/modifyAckDeadline、服务账号 JWT、ordering key
- Azure Service Bus:REST peek-lock、complete/abandon、ScheduledEnqueueTimeUtc、SAS
基础设施
- 共享 AWS SigV4 签名器,使用官方测试向量验证
- GCP RS256 JWT + token 缓存;Azure SAS HMAC-SHA256 + 缓存
Manager内置注册:sqs、sns、kinesis、gcp-pubsub、azure-service-bus- docker-compose 增加 AWS mock 与 GCP Pub/Sub emulator profile;集成 CI 增加 cloud 任务
验证
- PHPUnit 全量通过;PHPStan level 5;PHP-CS-Fixer 无待修复
- GitHub Actions PHP 8.0–8.5 全绿
- 云驱动契约测试基于脚本化 HTTP 服务;真实云需自备凭据
- 说明:LocalStack 最新镜像要求 license,AWS 集成测试默认使用可配置 endpoint
限制
- SNS 仅发布;Kinesis checkpoint 仅内存 + 可选回调;GCP Pub/Sub 为单条 REST pull;Azure Service Bus 不支持 AMQP、sessions、事务与批量发送
- 云实体(队列/主题/订阅/流)需预先创建