Composer安装的自定义TYPO3扩展未被系统识别的求助
解决TYPO3 13.1 Composer模式下自定义扩展无法被识别的问题
以下是针对问题的具体排查和解决步骤:
1. 确认扩展composer.json的关键配置
确保你的扩展composer.json包含TYPO3识别所需的核心配置:
type必须设置为typo3-cms-extensionextra字段中需指定TYPO3相关配置,示例:
注意:{ "name": "your-vendor/your-extension-key", "type": "typo3-cms-extension", "description": "Your custom extension", "version": "1.0.0", "require": { "typo3/cms-core": "^13.1" }, "autoload": { "psr-4": { "YourVendor\\YourExtensionKey\\": "Classes/" } }, "extra": { "typo3/cms": { "extension-key": "your_extension_key", "web-dir": "public" } } }extension-key必须和你ext_emconf.php中的$_EXTKEY完全一致,且只能包含小写字母、数字和下划线。
2. 验证ext_emconf.php的正确性
ext_emconf.php是TYPO3识别扩展的核心文件之一,确保$EM_CONF数组配置完整:
<?php $EM_CONF[$_EXTKEY] = [ 'title' => 'Your Extension Title', 'description' => 'Custom extension for controllers, models and view helpers', 'category' => 'plugin', 'author' => 'Your Name', 'author_email' => 'your@email.com', 'state' => 'beta', 'version' => '1.0.0', 'constraints' => [ 'depends' => [ 'typo3' => '13.0.0-13.99.99', ], ], 'autoload' => [ 'psr-4' => [ 'YourVendor\\YourExtensionKey\\' => 'Classes/' ] ] ];
确保$_EXTKEY的值与composer.json中的extension-key一致,且TYPO3版本约束包含13.1。
3. 添加必要的Configuration目录
TYPO3 13需要扩展存在Configuration目录(即使目录为空)才能识别。执行以下命令创建目录:
mkdir -p Configuration
如果你的扩展需要依赖注入或其他配置,可以在该目录下添加Services.yaml文件(可选,但推荐):
# Configuration/Services.yaml services: _defaults: autowire: true autoconfigure: true public: false YourVendor\YourExtensionKey\: resource: '../Classes/*'
4. 重新执行Composer和TYPO3命令
- 更新自动加载规则:
composer dump-autoload - 运行扩展安装命令:
php vendor/bin/typo3 extension:setup - 清除TYPO3缓存:
php vendor/bin/typo3 cache:flush
5. 检查Composer仓库配置
确认根目录composer.json中的本地仓库配置正确,示例:
"repositories": [ { "type": "path", "url": "./relative/path/to/your/extension", "options": { "symlink": true } } ]
使用symlink: true可以确保本地扩展的修改实时同步到vendor目录,避免重复执行composer update。
完成以上步骤后,刷新后台“Admin Tools>Extensions”列表,你的自定义扩展应该会被正常识别。
内容的提问来源于stack exchange,提问作者Paolo Deferre
相关产品推荐
相关产品推荐

