Skip to content

PHP 更新日志

当前版本 v1.3.10 · Packagist(mldong/jeeflow-php,独立 1.x 版本线)· 仓库 mldong/jeeflow-php · Releases 版本日期以本仓 git tag 为准;跨语言对齐脉络见 更新记录总览

PHP 引擎独立发版,版本号不与四语言对齐,对齐的是引擎语义与 API 契约。2026-08-11 首发 v1.0.0。环境要求:PHP 8.1+ / Composer 2.x。

v1.3.10 — 2026-09-07

  • 修复(demo 层,引擎核心零改动)id 生成改 DbAwareIdGenerator——修「保留库升级」幂等隐患(480beb3,T003 夜班批):InMemoryIdGenerator 进程内自增固定从 1001 起,PHP 进程重启后 counter 归零,对有历史数据的 SQLite/MySQL 重新 deploy 必撞主键。demo 层构造时扫 8 业务表 MAX(id) 取全局最大起步,内存/MySQL 两仓储共用同一实例。
  • 同批ac0b2c8,T003)demo 业务数据种子 driver:引擎真实启动 16 进行中 + 9 已完成 + 8 委托,八语言 demo 站覆盖矩阵对齐。
  • 验证:旧库(define 占 1001..1015)deploy 新 name code=0 id=1390 / demo-init 全跳过 / smoke 40 action 全过;公网全新库不受影响(本地复现路径)。

v1.3.9 — 2026-09-04

  • 新增 stats 三 action(processInstance/stats/overview|trend|group):overview / trend / group 全 9 维度 + 内存聚合。
  • 修复 stats 契约对齐 A–E 验收(与 Java 参考实现逐字段一致):trend 桶枚举含 end 桶 + 时间过滤 end 含端(两线一致性)。
  • 事件收口 v1.3.8 落地事件机制后,随 laravel 基础仓 sys_message 列名对齐收口(receiver_user_id / sender_user_id,对齐种子库与其余六栈),CC_CREATE 抄送知会全链闭环。
  • 验证 gate24 24/24(L2-11 消息写路径绿)+ CC 五场景 + stats。

v1.3.8 — 2026-09-03

  • 新增 引擎事件机制(方案 A):引擎侧 fire ProcessInstanceStart/End 等基础事件——PHP 无监听器体系,由集成层 WfMessageProcessEventListener 对动作后主动补发站内信(引擎只 fire、不保证消息落库)。

v1.3.7 — 2026-08-31

  • 修复 design 读路径行键只认 camelCase:JeeflowFacade::designListByType / designDetail 读 PDO 行只取 displayName / isDeployed,而 PDO 持久化返回原列名 display_name / is_deployed → 未部署设计的 displayName 出口恒空、isDeployed 恒 0。改双读(向 designRowToMap 看齐),零出口键形变更。
  • 测试 T1 回归用例 testDesignReadPathPdoSnakeCaseKeys + 破坏性自证两发(红 → 红 → 复原绿,用例非恒真);全量 T0 287 tests / 1481 assertions 全绿 + T1 mysql-smoke 4/4;契约门禁出口键形 L2-10 入共享 runner(22 → 23)。
  • 集成验收 mldong-laravel-jeeflow bump → 通道 B 候选→生产 → laravel S13 转绿 → 生产 tag L0–L2 23/23。收口口径:本轮只动 PHP(单语言),收口只认 laravel 栈。

v1.3.6 — 2026-08-30

  • 修复 删除/启停类 action 不认 {ids} 批量:改走统一助手 idListArgs{ids} 数组优先、单 {id} 兼容、两者皆缺 / 空数组 / 含非法值一律 99999999),processDefine/removeprocessDesign/removeprocessDefine/upAndDown 一并收敛——此前空值静默成功(DELETE ... WHERE id='' 删 0 行仍回 code=0)。
  • 测试 B 档入口批量形态矩阵(四 action × 四态,20→24 用例);自证已跑(legacy 实现下 16 组全静默成功 → 修复后全 99999999)。全量 T0 286 tests 全绿 + T1 4/4。
  • 与四语言 / Rust 同批。

v1.3.5 — 2026-08-24

  • 修复 串行会签「一次建全」回归,改回逐个创建(对齐 Java 与 Go / Python / Node):节点入口只建 actors[0] 一个 DOING 任务,全量成员 + 计数器存首任务变量,每完成非最后一人建下一人、最后一人完成 merged。
  • 修复 CountersignHandler 串行分支判定 $csType === 2=== CountersignType::SERIALSERIAL=1,原不可达分支本轮激活)。
  • 修复 JeeflowFacade.buildNodeProgress 会签成员清单改读任务变量 operatorList_{node}
  • 全量 280 tests / 1300 assertions 全绿(PHP 8.4.24,REQUIRE_MYSQL 真库)。

v1.3.4 — 2026-08-23

  • 语义修正 会签一票否决条件化 + merged 废弃残留任务(对齐 mldong 内置引擎 boot2/3):submitType=20 默认软拒绝;仅节点 countersignCompletionCondition=ONE_VOTE_VETO 时一票否决推进;merged 后废弃该节点剩余 DOING 任务(taskState=99)。
  • 修复 引擎缺口:getSurrogate 生效查询(时间窗 + enabled 过滤)+ highLight nodeProgress 会签成员进度。
  • 全量 277 tests / 1264 assertions 全绿。

v1.3.3 — 2026-08-20

  • 修复 响应出口统一 id 字符串化:JeeflowFacade::flow()data 递归 stringifyIds()——单记录端点此前 19 位雪花 id 以 JSON 数字下发,前端 float64 丢精度致 designer 保存静默 no-op(L3 S8a 偶发根因)。对齐 Java / Go / Node。
  • 修复 嵌套 his 快照列表的 id / process_design_id 同步字符串化;JeeflowFacadeIssue61Test 匿名类补接口方法(预存 PHP fatal)。
  • 全量 242 tests / 919 assertions 全绿;Laravel L3 E2E 14 过 / 1 skip / 0 失败。

v1.3.2 — 2026-08-19

  • 修复 pageCcInstancesext / instanceExt 字段(SELECT 增 instance_variable 解析输出),修复 L3 E2E S6 抄送列表行渲染失败。

v1.3.1 — 2026-08-19

  • 修复 pageCcInstances 补 JOIN wf_process_instance / wf_process_define,新增 displayName / processDefineName / version / operator 字段(此前抄送列表前端定义名称/版本列空白)。

v1.3.0 — 2026-08-19

  • 修复 TaskNodeParser performType/countersignType 改用枚举 from() 替代 (int) 强转,正确处理字符串值(此前会签场景走错分支)。
  • 新增 AssignmentHandler SPI 机制(对齐 Java CreateTaskHandler):AssignmentHandlerInterface + 注册表 + 内置 FormFieldAssigneeHandler / ApplicantDeptLeaderAssignmentHandlerCreateTaskHandler::resolveActors() 新增 actors 为空时 handler 分支。
  • 扩展 OrgUserProviderInterface 新增 findDeptLeaders() / findDeptMainLeaders()

v1.2.1 — 2026-08-18

  • 修复 pageInstances 结果补 JOIN wf_process_define,新增 displayName / version / processDefineName 等字段(前端「我发起的」列不再空白)。

v1.2.0 — 2026-08-18

  • 新增 FlowUtil 用户信息注入 addUserInfoToArgs() + 自动标题 addAutoGenTitle()EnumDictRegistry 元数据模块(7 内置字典)+ HandlerRegistry 7 内置 Handler;枚举 label() 方法 + CountersignType 枚举类。
  • 测试 新增 22 个单元测试,全量 241 tests / 911 assertions。

v1.1.3 — 2026-08-17

  • 修复 空 Map 序列化对齐:variable / ext / taskFormData / nodeProgress 等空值统一 (object)[](JSON {}),对齐 Java / Go / Python / Node;listByTypeprocessDesignId 转 string。

v1.1.2 — 2026-08-15

  • 修复 PDO 分页 LIMIT ? 内联为整数;PDO hydrate 主键 int → string,setTaskId 不再类型失败。
  • 新增 persist 拦截器 / 写侧:ARCHIVE / SYNC 落业务表;T1 冒烟 M1–M4 并入 changelog。

v1.1.1 — 2026-08-13

  • 修复 processTask/detailtaskModel 补全 ext / form 字段。
  • 修复 processDesign/page 时间格式对齐 yyyy-MM-dd HH:mm:ss

v1.1.0 — 2026-08-12

  • 新增 processTask/candidatePage:模型候选双源 + 用户搜索回落。
  • 新增 processInstance/bizData:业务数据读侧回显。
  • 新增 SPI:UserSearchProviderInterfaceOrgUserProviderInterface

v1.0.0 — 2026-08-11

  • 新增 引擎核心(packages/core):ProcessInstance 聚合根 + 状态机 + 6 SPI + 7 Handler,行为对齐 Java。
  • 新增 持久化(packages/repository-pdo):MySQL 八表 + InMemory + SQLite 默认存储。
  • 新增 统一门面(packages/web-contract):JeeflowFacade 40 action;PSR adapter(packages/web-psr)+ 参考 demo(demo-slim,Slim 4)。

jeeflow · 轻量级多语言工作流引擎