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

TYPO3 V10.4升级V11.5替换objectManager->get时Services.yaml报错解决

TYPO3 v10.4升级v11.5 Services.yaml配置报错解决方案

升级TYPO3从v10.4到v11.5版本时,需要替换原有代码中objectManager->get调用,调整Services.yaml配置后出现报错,问题及解决方案如下:

原始错误配置

# Configuration/Services.yaml
services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

HGA\Mairlist\:
  resource: '../Classes/*'
  exclude: '../Classes/Domain/Model/*'

HGA\Mairlist\Utilities\SqlSelect:
  public: true
  
HGA\Mairlist\Utilities\SqlUtility:
  public: true

相关控制器注入代码

/**
 * @var SqlUtility $sqlUtil
 */
protected $sqlUtil;

public function __construct(SqlUtility $sqlUtil)
{
  $this->sqlUtil = $sqlUtil;
}

/**
 * @var SqlSelect $sqlSel
 */
protected $sqlSel;

public function __construct(SqlSelect $sqlSel)
{
  $this->sqlSel = $sqlSel;
}

问题原因

YAML语法对缩进规则要求严格,原有配置中所有HGA\开头的服务配置项没有正确缩进,和_defaults不在同一层级,不属于services节点下的有效配置,导致服务注册失败触发报错。

修正后配置

将所有HGA\开头的配置项缩进2个空格,和_defaults层级对齐即可:

# Configuration/Services.yaml
services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

  HGA\Mairlist\:
    resource: '../Classes/*'
    exclude: '../Classes/Domain/Model/*'

  HGA\Mairlist\Utilities\SqlSelect:
    public: true
  
  HGA\Mairlist\Utilities\SqlUtility:
    public: true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:04