SuperAPI AI 工具集

typo3-v14-reference

编程与开发

查看项目

更新于 10-16 05:06

技能介绍

用途:这是 TYPO3 v14 的 API 参考,说明 v14 代码应如何编写,不负责执行升级。从 v12/v13 升级整个项目或站点由 typo3-upgrade-run 负责,两者冲突时以后者为准;升级时先加载它,本技能在其手动迁移阶段作为 API 参考。

版本策略:仅面向 TYPO3 v14.x,示例与约束均假设 v14 代码库。建议在 composer.json 中声明仅 v14 的约束,Composer 是 v14 的唯一事实来源。目标写 ^14.3 而非 ^14.0,因为 14.3 是受支持的 LTS 线,14.0–14.2 不再获得安全更新。ext_emconf.php 在 v14 被弃用(feature #108345),v15 不再解析;Composer 模式扩展不应附带,仅在 TER/Tailor 发布或 Classic 模式安装等工具仍需要时保留,并与 composer.json 保持同步。

PHP 要求:核心最低 8.2,项目目标 8.4,依赖集可解析时优先 8.5;可用 composer why-not php 8.5 检查。鼓励使用现代 PHP 特性,如构造器属性提升、命名参数、match 表达式和枚举。

控制器:Extbase ActionController 的动作方法必须返回 ResponseInterface,可用 htmlResponse()、jsonResponse()、redirect() 等。后端模块控制器使用 #[AsController] 属性与 ModuleTemplateFactory。

视图与模板:推荐用 ViewFactoryInterface 配合 ViewFactoryData 构建视图,指定 templateRootPaths、partialRootPaths、layoutRootPaths 与 request。Fluid 模板中输出默认自动转义,显式 HTML 需用 f:format.html。注意 Fluid 将 partial 作为独立模板解析,仅在调用模板或布局中声明的自定义 ViewHelper 命名空间不会被子 partial 继承,需在每个使用它的文件中声明。

事件系统:v14 以 PSR-14 事件为标准,优先于旧钩子,可用 #[AsEventListener] 属性或 Services.yaml 中的 event.listener 标签注册。常见事件包括 ModifyPageLinkConfigurationEvent、ModifyCacheLifetimeForPageEvent、BeforeStdWrapFunctionsInitializedEvent 等。核心不提供通用的 BeforeRecordOperationEvent/AfterRecordOperationEvent,应使用 SC_OPTIONS DataHandler 钩子或文档列出的 DataHandling 事件。

限制:本技能不运行升级;翻译站点在 14.3.6+ 中 Extbase 遵循站点语言的 fallbackType,未翻译记录可能返回 null,需先阅读相关说明。详细示例、长模板与排错矩阵见完整指南,窄任务可保持本文件不加载以遵循渐进披露。