TYPO3自定义扩展中Tsconfig扩展名及自动引入规则咨询
TYPO3 8.7 TsConfig扩展名规范、自动加载规则及DDEV迁移配置方案
1. TsConfig文件的扩展名选择
TYPO3 8.7虽然兼容用.typoscript作为TsConfig的扩展名,但官方推荐并在后续版本统一使用.tsconfig。原因很简单:TsConfig(页面/用户配置)和常规TypoScript是两个完全不同的配置体系——前者负责后端界面、页面权限等后台相关配置,后者是前端渲染的核心规则,用不同扩展名能让文件结构更清晰,也贴合后续TYPO3版本的规范(比如9+版本明确区分这两类扩展名)。社区此前的投票也倾向于这个区分方式,所以建议你统一给TsConfig文件用.tsconfig扩展名。
2. 自定义扩展中自动加载的TypoScript/TsConfig规则
在TYPO3 8.7里,自动加载并非覆盖目录下所有文件,而是有明确的限定:
- TypoScript部分:仅
Configuration/TypoScript/constants.typoscript和Configuration/TypoScript/setup.typoscript这两个文件会被TYPO3自动加载。同一目录下的其他TypoScript文件,需要在这两个主文件里通过<INCLUDE_TYPOSCRIPT>指令引入,示例:<INCLUDE_TYPOSCRIPT: source="FILE:EXT:your_extkey/Configuration/TypoScript/Layouts/Default.typoscript"> - TsConfig部分:仅
Configuration/TsConfig/Page.tsconfig会被自动作为页面TsConfig加载。其他TsConfig文件(比如细分的后台布局配置、用户配置),要么在Page.tsconfig里用<INCLUDE_TSCONFIG>引入,要么在扩展的ext_localconf.php里通过PHP代码注册,示例:\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig( '<INCLUDE_TSCONFIG: source="FILE:EXT:your_extkey/Configuration/TsConfig/BackendLayouts.tsconfig">' );
迁移到DDEV时实现自动引入的具体操作
DDEV本身不会影响TYPO3的配置加载逻辑,只要遵循TYPO3的规范配置,就能实现自动引入:
- 规范扩展文件结构:
- 将全局常量配置放到
Configuration/TypoScript/constants.typoscript,渲染规则配置放到Configuration/TypoScript/setup.typoscript - 页面TsConfig主文件命名为
Configuration/TsConfig/Page.tsconfig
- 将全局常量配置放到
- 确保扩展激活:如果是Composer模式,在DDEV环境里通过
ddev composer require安装扩展;非Composer模式则在TYPO3后台“扩展管理”中激活目标扩展 - 清理缓存:每次修改配置后,在DDEV终端执行
ddev exec typo3 cache:flush,确保TYPO3加载最新配置 - 拆分配置的处理:若配置较多拆分到多个文件,通过前面提到的
<INCLUDE_TYPOSCRIPT>/<INCLUDE_TSCONFIG>指令将子文件引入主文件,或通过PHP代码注册,就能实现所有配置的自动加载
内容的提问来源于stack exchange,提问作者god_is_love
相关产品推荐
相关产品推荐

