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
相关产品推荐
相关产品推荐

