Skip to content

v6.0.5

Choose a tag to compare

@bingcool bingcool released this 25 Oct 06:35
· 3 commits to library-6.x since this release

library 6.0.5 发布说明

一、新增模块

SMS 短信
内置阿里云、腾讯云网关,支持 extend() 扩展新厂商
支持大陆/香港/澳门/台湾四地区号码归一化
验证码原子消费、按场景限流、并发发送去重
校验结果可区分:过期、未发送、输错剩余次数、已作废
收紧配置、TTL、收件人上限与日志脱敏

Mail 邮件
支持多账号 SMTP 与国内邮箱预设,基于 PHPMailer
修复部分投递重复发信、附件 MIME 头注入、SMTP 用户名限制、日志异常污染发送结果
补端口/加密解耦、附件字节快照、模板路径与缓存校验

Image / Qrcode / Barcode
新增图像处理、二维码、条码三个模块
Image 基于 Intervention Image 4.x,支持 preset、水印、编码与像素守卫
Qrcode 基于 bacon-qr-code
Barcode 基于 picqer

PhpOffice Excel
新增基于 ext-xlswriter 的导出、整表读取与流式导入抽象层
包含列校验、值对象与异常体系

二、重点修复与加固

Image:修复水印九宫格错位、居中失效、透明度反转、文字水印 alpha/颜色非法等 P0;修正 contain 语义、encode 优先级、preset 编码残留、bmp/tiff 输出格式、像素预检、resize 退化参数、max_pixels/max_bytes 约束与 Intervention 异常包装。
Barcode:SVG 支持人类可读文字;修复 CODE 39 正则误判;统一空内容异常类型;宽高钳制与未知类型回退告警。
Lock:升级 malkusch/lock 3.1.x,重建 Redis/MySQL/PostgreSQL 锁,新增 CoroutineSynchronizedTrait 统一协程同步语义;明确 mutex 按协程缓存。
PubSub:重构为订阅会话模型,subscribe/psubscribe/unsubscribe/publish/stop 由基类 final 收口;支持 inline/coroutine 派发与并发上限;新增异常层,跨协程退订、连接复用等场景 fail-fast。
CurlProxy:新增包体预览限长;traceId 按请求读取、日志上下文按请求隔离;响应日志上限 512KB;Span 改为 HTTP 完成后结束并脱敏敏感字段。
OpenTelemetry:移除不可用的文件配置与 SdkConfigurationResolver,统一走环境变量初始化,清理上游命名空间残留。

三、破坏性变更(升级需改代码)

MongoDB 模块重写:构造函数改为数组配置;写操作返回驱动原生结果对象(InsertOneResult/UpdateResult/DeleteResult 等);移除 count()、__call() 与旧的 insert/update/delete 返回 int|false 语义。迁移表见 README。
Lock:删除 2.x 遗留类(PHPRedisMutex、PredisMutex、CASMutex、FlockMutex、MemcachedMutex、TransactionalMutex、PgAdvisoryLockMutex、SynchronizeTrait),改用 RedisMutex/MySQLMutex/PostgreSQLMutex。
PubSub:AbstractPubSub 子类若重写了 subscribe/unsubscribe/publish/stop 等方法需适配;新增 PubSubException、InvalidSubscriptionException、SubscriptionConflictException。
OpenTelemetry:配置了 OTEL_EXPERIMENTAL_CONFIG_FILE 将直接抛 RuntimeException,仅支持环境变量初始化。

四、依赖与运行环境

依赖 变更

malkusch/lock ^2.2.0 → ~3.1.0
alibabacloud/dysmsapi-20170525 新增 ~4.6
tencentcloud/sms 新增 ~3.0
phpmailer/phpmailer 新增 ~7.1
intervention/image 新增 ~4.4
bacon/bacon-qr-code 新增 ~3.1
picqer/php-barcode-generator 新增 ~3.3

可选扩展:ext-xlswriter(Excel,已写入 suggest)、ext-gd 或 ext-imagick(Image,按 driver 至少一个)
PHP 要求仍为 >= 8.4