用途:在 TYPO3 v14 项目中跨多个扩展批量执行重复性改动,适用于 monorepo 或 packages/ 目录下需要统一升级、清理或迁移的场景,例如盘点哪些包仍在调用已移除的 API。
主要流程:先扫描代码库找出受影响文件;再按根因与代码归属拆分为互不冲突的独立单元;向用户展示编号计划并等待批准;逐个执行单元并在每次修改后验证;最后汇总变更并列出失败项。在升级图中只执行分配到的批次并返回证据,重试、快照、截止时间与最终验证由父级负责。
执行规则:每个单元必须可独立验证;同一文件不得出现在两个单元中;按单元对改动的 PHP 运行 php -l 并执行相关测试,整批完成后运行完整 PHPStan/测试;仅在 composer.json 变化时规范化 Composer 元数据;提交可评审批次需用户授权,推送是单独动作;单元导致测试失败即停止并报告。
常见批量操作:Hook 到 PSR-14 事件迁移(注意 DataHandler 等部分 hook 无 1:1 事件,不可迁移到不存在的事件);TCA 现代化(如 eval required 改 required、inputDateTime 改 datetime、inputLink 改 link、colorPicker 改 color、email 类型、items 数组转为 label/value、移除 v14 自动生成的样板列等);GeneralUtility::makeInstance 改依赖注入;Fluid 模板重构;命名空间或扩展键重命名;ext_localconf/ext_tables 清理到 Configuration/;测试基础设施搭建;PHP 8.4 迁移(属性钩子、非对称可见性、array_find/array_any/array_all 等,注意不是直接替换);Content Blocks 迁移;本地化 XLIFF 批处理。
v14 专项目标包括移除 $GLOBALS['TSFE']、注解转属性、MailMessage->send() 改为注入 MailerInterface、移除 ctrl.searchFields、TCA interface 键、后端模块父 ID、Fluid 5.0 类型、FlexForm 指针字段、TypoScript external 属性等。
限制:仅针对 TYPO3 v14.x,其他版本未提供适配说明;部分映射非 1:1,需在 Core 事件列表中确认后再批量改写;未提供具体收费、价格或平台信息。