You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Composer安装的自定义TYPO3扩展未被系统识别的求助

解决TYPO3 13.1 Composer模式下自定义扩展无法被识别的问题

以下是针对问题的具体排查和解决步骤:

1. 确认扩展composer.json的关键配置

确保你的扩展composer.json包含TYPO3识别所需的核心配置:

  • type必须设置为typo3-cms-extension
  • extra字段中需指定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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:56