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

TYPO3 v13依赖报错:已装content_defender仍提示缺失求解决

解决方案:TYPO3 v13中t3sbootstrap依赖content_defender报错问题

1. 确认content_defender的TYPO3版本兼容性

先检查ichhabrecht/content-defender是否适配TYPO3 v13:

  • 执行命令查看该包的版本约束:
    composer show ichhabrecht/content-defender
    

如果输出里require字段的typo3/cms-core版本不包含^13,说明该扩展未适配v13,需更换兼容版本(若存在)或寻找替代扩展。

2. 替换废弃的PackageStates生成命令

TYPO3 v13已移除install:generatepackagestates命令,改用以下命令同步扩展状态:

./vendor/bin/typo3 extension:setup

该命令会自动生成/更新typo3conf/PackageStates.php并处理扩展激活逻辑。

3. 清理缓存与刷新自动加载

  • 刷新Composer自动加载规则:
    composer dump-autoload
    
  • 清空TYPO3所有缓存:
    ./vendor/bin/typo3 cache:flush
    

4. 修复t3sbootstrap的依赖检测逻辑

报错指向的PackageManager.php在TYPO3 v13中已被移除,说明t3sbootstrap使用了废弃API检测依赖:

  • 打开t3sbootstrap的ext_emconf.php,检查constraints字段中对content_defender的版本要求是否匹配当前安装版本。
  • 找到t3sbootstrap代码中调用PackageManager的位置,替换为TYPO3 v13兼容的检测方法:
    原废弃代码示例:
    $packageManager = \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->getEarlyInstance(\TYPO3\CMS\Core\Package\PackageManager::class);
    if (!$packageManager->isPackageActive('content_defender')) {
        // 报错逻辑
    }
    
    替换为:
    use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
    
    if (!ExtensionManagementUtility::isLoaded('content_defender')) {
        // 报错逻辑
    }
    

若你不熟悉修改扩展代码,建议向t3sbootstrap开发者提交兼容性问题。

5. 验证Composer依赖完整性

  • 检查项目根目录的composer.json,确认require字段同时存在t3sbootstrap和ichhabrecht/content-defender。
  • 执行命令重新安装依赖,确保版本兼容:
    composer update ichhabrecht/content-defender t3sbootstrap
    

内容的提问来源于stack exchange,提问作者Nor St

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:44:52