我最近更新了 v12 的扩展。从一开始我就犯了一个错误
在 null 上调用成员函数 count()
在供应商/typo3/cms-extbase/Classes/Mvc/Controller/ActionController.php第321行
和
在 null 上调用成员函数 addNewArgument()
在供应商/typo3/cms-extbase/Classes/Mvc/Controller/ActionController.php第302行
如果没有我当前的临时修复,我会遇到以下问题:“$this->arguments”尚未在两点定义:
count() 的“initializeActionMethodValidators()”和 addNewArgument() 的“initializeActionMethodArguments()”。
我当前的临时修复是这样的(在两个受影响的函数的最顶部使用):
if(is_null($this->参数)){
$this->arguments = GeneralUtility::makeInstance(Arguments::class);
}
是的,我知道我不应该更改核心文件。但我还没有找到另一种方法来解决这个问题。
有解决方案/潜在原因吗?
感谢@GarvinHicking(也感谢@Chris,即使你说的这次没有让我找到正确的答案)
您是否知道覆盖标记为“内部”且不应在使用代码中使用的方法? [...] 否则,应通过“injectConfigurationManager”方法设置参数数组。在你的情况下这可能不被称为吗?!
“injectConfigurationManager()”未被调用,因为就我而言,扩展的 AbstractBaseController 中存在覆盖。
我注释掉/删除了 Overwrite,这可能是早期 TYPO3 版本的遗留问题,然后错误就消失了。