SuperAPI AI 工具集

typo3-rector

通用与其它

查看项目

更新于 10-15 21:10

技能介绍

用途:该技能用于把 TYPO3 扩展的 PHP 代码迁移到 TYPO3 v14,通过 Rector 自动应用预定义规则,替换已弃用的代码模式。非 PHP 迁移(FlexForms、TypoScript、Fluid、YAML)需改用 Fractor(见 typo3-fractor 技能)。

主要能力:迁移 TYPO3 内置 Fluid 类名到独立 Fluid、makeCategorizable() 注册、$GLOBALS['TSFE']->fe_user 相关代码,并加固 HashService 与 MailMessage::send() 迁移。当前 typo3-rector 3.14 基于 Rector 2.5,每次迁移前应执行 composer update ssch/typo3-rector 以应用最新 v14 规则。

安装与运行:composer require --dev ssch/typo3-rector,DDEV 下为 ddev composer require --dev ssch/typo3-rector。Rector 会加载项目自动加载器,TYPO3 v14 需在 PHP 8.2+ 运行,建议与项目 PHP 版本一致,可用 ddev exec vendor/bin/rector process --dry-run 试运行,去掉 --dry-run 应用更改,之后执行 ddev typo3 cache:flush 与 ddev composer dump-autoload。

配置:在项目根目录创建 rector.php,设置 withPaths、withSkip、withPhpVersion(PhpVersion::PHP_84) 与 withSets([LevelSetList::UP_TO_PHP_84, Typo3LevelSetList::UP_TO_TYPO3_14]),并调用 withImportNames()。旧代码库可先跑 UP_TO_TYPO3_13 再跑 UP_TO_TYPO3_14。也可单独使用 Typo3SetList::TYPO3_14。

关键模式:Fluid 用 ViewFactoryInterface 与 ViewFactoryData 替代 StandaloneView;Extbase 控制器动作须返回 ResponseInterface,使用 htmlResponse()、jsonResponse()、redirect();优先使用 PSR-14 事件(#[AsEventListener])替代旧钩子;后端模块在 Configuration/Backend/Modules.php 注册;服务配置写入 Configuration/Services.yaml;TCA 仅使用静态文件,v14 中 $GLOBALS['TCA'] 加载后只读。

限制:资料未提供价格、平台支持范围或迁移效果保证;具体规则覆盖范围以所用 typo3-rector 版本为准,使用前应核对官方 TYPO3 文档确认 API 未弃用。