Skip to content

Releases: erikwang2013/messaging-php

v1.9.0

Choose a tag to compare

@erikwang2013 erikwang2013 released this 30 Oct 05:23

Full Changelog: v1.8.1...v1.9.0

v1.8.1

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 19:03

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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 18:46

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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 18:11

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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 17:27

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-php

Composer 2.2+ 需要显式允许插件;禁止插件的项目仍可按各框架文档手动发布配置。

验证

  • 新增 ConfigInstallerTest:7 个场景(6 框架 + 不覆盖已有文件)
  • 真实 Composer 消费项目验证:检测到 Laravel 后自动复制并输出日志
  • PHPUnit:718 tests / 2564 assertions;PHPStan、CS、PHP 8.0–8.5 CI 全绿

v1.6.1

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 17:16

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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 17:12

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、rocketmq
  • docker-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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 16:55

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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 16:42

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、zeromq
  • docker-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

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 16:05

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、事务与批量发送
  • 云实体(队列/主题/订阅/流)需预先创建