SuperAPI AI 工具集

typo3-simplify

编程与开发

查看项目

更新于 10-15 21:10

技能介绍

用途:简化并精修近期改动的 TYPO3 代码,保持功能不变,强调清晰而非取巧、优先使用 TYPO3 API 而非自定义实现、优先 v14 模式而非已弃用写法。仅面向 TYPO3 v14.x。

主要能力:先识别近期修改文件(如 git diff --name-only HEAD~1 或暂存改动),再并行执行三轮审查——API 复用、代码质量、效率,汇总去重后按影响排序并应用修复,最后验证行为未变。

API 复用:用 QueryBuilder 替代手写 DB 查询,用 DI 注入 ServerRequestInterface 替代 $GLOBALS['TYPO3_REQUEST'],用 FlashMessageService、JsonResponse、构造函数注入、PathUtility、CacheManager、RootlineUtility/PageRepository、UriBuilder 等替代对应自定义实现;并给出 v14 弃用替换,如 #[AsEventListener] 替代 ext_localconf.php 钩子数组、Configuration/Backend/Modules.php 替代 ext_tables.php 模块注册、PSR-14 事件替代 XCLASS、TCA 专用键 required/nullable 替代 eval、'type' => 'datetime' 替代 renderType inputDateTime、'type' => 'number' 替代 input+eval int、items 使用 label/value 键。

代码质量:PHP 类要求每文件一类、PSR-4、declare(strict_types=1)、final、readonly、构造函数提升、显式返回类型、无未用 use、无 @ 抑制、卫语句、避免 mixed;Fluid 要求用 f:translate、f:link.page/f:link.typolink、f:image,重复标记用 Partials,慎用 f:format.raw,变量 camelCase;TCA 与 Services.yaml 也给出精简规则(自动装配、_defaults、移除冗余定义等)。

效率:QueryBuilder 只选所需列、单行加 setMaxResults()、用 count() 计数、缓存昂贵操作、避免 N+1、用 #[Lazy] 惰性加载、用 WHERE IN 替代 foreach+in_array、移除 CLI 中冗余 cache:flush。

输出:按文件分组报告发现(含行号与建议),并说明已应用修复数、无行为变化、建议运行测试验证。

限制:仅支持 TYPO3 v14.x;双版本扩展可临时保留过渡写法;部分 v14 专属简化项(如 $GLOBALS['TSFE'] 在 v14 会致命错误、Extbase 注解改属性、MailMessage->send() 改 MailerInterface、FlexFormService 改用 FlexFormTools、Bootstrap Modal JS 改用原生 dialog 或 @typo3/backend/modal、ctrl.searchFields 移除、自定义本地化解析器由 Symfony Translation 取代、createVersionNumberedFilename() 改 System Resource API)需按资料所述处理。具体安装与调用方式暂未提供。