用途:Fractor 是通用文件重构工具,负责 TYPO3 升级中的非 PHP 文件迁移,与处理 PHP 的 Rector(ssch/typo3-rector)配合使用。本技能面向 TYPO3 v14.x 目标代码库。
主要能力:可迁移 FlexForm/XML、TypoScript/TSconfig、Fluid 模板、YAML、XLIFF 翻译文件、Htaccess 与 composer.json。规则按版本组织,提供累积级别集(如 Typo3LevelSetList::UP_TO_TYPO3_14)和单版本集(Typo3SetList::TYPO3_12/13/14)。上游集合名可能仍为 TYPO3_12、TYPO3_13 等历史标识。
安装:composer require --dev a9f/typo3-fractor,或 ddev composer require --dev a9f/typo3-fractor。需 PHP 8.2+ 以解析 TYPO3 v14 包。composer.json 处理需另装 a9f/fractor-composer-json。
配置与运行:可用 vendor/bin/typo3-fractor-init 生成默认配置,或在项目根创建 fractor.php,通过 withPaths、withSets、withSkip、withRules 设置。预览用 vendor/bin/fractor process --dry-run,应用用 vendor/bin/fractor process;DDEV 下加 ddev exec。可用 --no-diffs、--rules-summary、--memory-limit=2G、--only 等选项。v1.0 起移除 --quiet。
限制与安全:切勿在生产环境运行,须在开发环境配合版本控制,审查测试后再发布。Fractor 只能处理文件,无法看到存于 sys_template、页面 TSconfig 或组 TSconfig 中的旧 TypoScript,需另行查询数据库字段。若 Composer 以 --no-plugins 恢复后无法启动,应先执行启用插件的正常 composer install 并重新生成 autoloader,不要手工修改 vendor 中的注册表文件。建议 dry run→审查→应用→dry run 验证固定点,独立使用时应用轮次上限为三次。