关于 typo3-extension-upgrade
typo3-extension-upgrade 是将 TYPO3 扩展代码升级到较新 LTS 版本的技能,不用于升级项目或 TYPO3 核心。它结合迁移工具、静态分析、测试和版本指南,强调审查变更。
主要功能
- 01规划升级并评估兼容性风险
- 02扫描已弃用的 API
- 03使用 Rector 迁移 PHP
- 04使用 Fractor 迁移配置和模板
- 05通过 PHPStan 和 PHPUnit 检查代码
- 06查阅特定版本的迁移参考资料
适用场景
- 01将扩展升级到较新的 TYPO3 LTS
- 02应用前审查自动迁移变更
- 03检查不同受支持依赖版本的兼容性
- 04评估升级范围及无法自动处理的问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill typo3-extension-upgrade安装后在 Claude Code 中输入/typo3-extension-upgrade确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
checkpoints.yamlassets/.php-cs-fixer.phpfractor.phpphpstan.neonphpunit.xmlrector.phpreferences/api-changes.mdapi-traps.mdaudit-mode.mddual-compatibility.mdmulti-version-worktrees.mdpre-upgrade.mdreal-world-patterns.mdthird-party-dependency-upgrades.mdtoolchain-output.mdtroubleshooting.mdupgrade-v11-to-v12.mdupgrade-v12-to-v13.mdupgrade-v13-to-v14.mdverification.mdscripts/scan-deprecations.sh详细介绍
TYPO3 扩展升级技能
用于将 TYPO3 扩展升级到较新 LTS 版本的框架。 仅针对扩展代码,不涉及项目或核心升级。
升级工具包
| 工具 | 用途 | 文件 |
|---|---|---|
| 扩展扫描器 | 诊断已弃用的 API | TYPO3 后端 |
| Rector | 自动化 PHP 迁移 | .php |
| Fractor | 非 PHP 迁移 | FlexForms、TypoScript、YAML、Fluid |
| PHPStan | 静态分析 | .php |
核心工作流
- 完成规划阶段(参阅
references/pre-upgrade.md) - 创建功能分支(确认 Git 工作区干净)
- 更新
composer.json中的目标版本约束 - 审查第三方依赖项的主版本变更(参阅
references/third-party-dependency-upgrades.md) - 运行
rector process --dry-run,然后审查并应用变更 - 运行
fractor process --dry-run,然后审查并应用变更 - 运行
php-cs-fixer fix - 针对每个受支持的依赖项版本运行
phpstan analyse,并修复错误 - 运行
phpunit并修复测试 - 在目标 TYPO3 版本中测试
- 验证成功标准(参阅
references/verification.md)
不应自动应用的情况
当涉及双版本兼容性、缺少测试、变更不明确或复杂 API(DBAL、Extbase)时, 切勿盲目应用 Rector/Fractor。应手动应用规则,并在每次变更后进行测试。
第三方依赖项升级
当 composer.json 将依赖项约束扩展到新的主版本时:列出 API 的使用情况,对照新 API 进行核查,验证模拟对象,针对签名差异使用适配器模式,并按每个主版本运行 PHPStan。参阅 references/third-party-dependency-upgrades.md。
快速命令
rector process --dry-run && rector process # PHP migrations
fractor process --dry-run && fractor process # Non-PHP migrations
php-cs-fixer fix && phpstan analyse && phpunit # Quality checks
资源模板
assets/ 中的配置模板:rector.php、fractor.php、phpstan.neon、phpunit.xml、.php-cs-fixer.php
参考资料
| 参考资料 | 适用场景…… |
|---|---|
references/pre-upgrade.md | 规划清单、版本审查、风险评估 |
references/api-changes.md | 按 TYPO3 版本检查已弃用或已移除的 API |
references/api-traps.md | 跨版本陷阱:TCA 限制、引导顺序、绕过 DI |
references/upgrade-v11-to-v12.md | 从 TYPO3 v11 升级到 v12 |
references/upgrade-v12-to-v13.md | 从 TYPO3 v12 升级到 v13 |
references/upgrade-v13-to-v14.md | 从 TYPO3 v13 升级到 v14 |
references/dual-compatibility.md | 双版本兼容(v12 + v13) |
references/real-world-patterns.md | 实际迁移示例 |
references/toolchain-output.md | Rector/Fractor 试运行输出 |
references/troubleshooting.md | Rector 破坏代码、PHPStan 错误、测试失败 |
references/third-party-dependency-upgrades.md | 非 TYPO3 依赖项(主版本升级、适配器模式) |
references/verification.md | 成功标准和实际环境测试 |
references/multi-version-worktrees.md | 按 LTS 划分的工作树布局、回移工作流、跨版本 CI 矩阵 |
references/audit-mode.md | 评估/估算:仅针对无法自动化的发现创建工单 |
scripts/scan-deprecations.sh <path> | 确定性 grep 扫描,用于查找已弃用或已移除的 API 和陷阱 |
外部资源
致谢与归属
此技能基于 Netresearch DTT GmbH 的优秀成果。
原始代码库:https://github.com/netresearch/typo3-extension-upgrade-skill
版权所有 (c) Netresearch DTT GmbH — 方法论和最佳实践(MIT / CC-BY-SA-4.0)
特别感谢 Netresearch DTT GmbH 为 TYPO3 社区慷慨贡献开源成果,助力塑造了此技能集合。 由 webconsulting.at 为此技能集合改编