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

PHP 8.0.21升级后TYPO3 Extbase扩展添加新项触发Undefined array key 1警告问题排查

问题分析与解决办法

首先,这个PHP警告的根源是路由增强器配置里的_controller格式不符合Extbase的预期,在PHP 8.0+的严格模式下触发了未定义数组键的警告——而PHP 7.4会静默忽略这种情况,所以升级PHP后问题才显现出来。

触发原因

看你路由配置里的这一段:

- routePath: '/page/{page}'
  _controller: 'Article'
  _arguments:
    page: currentPage

Extbase的ExtbasePluginEnhancer在解析_controller值时,会用::分割控制器名和方法名(比如Article::list会拆成['Article', 'list'])。但你这里只写了'Article',没有指定方法名,拆分后的数组只有1个元素(索引0),而代码在第202行尝试访问索引1的元素,就导致了PHP 8的Undefined array key 1警告。

PHP 7.4对这种未定义数组键的访问会返回null且不抛出警告,但PHP 8.0开始将其提升为警告级别错误,所以升级后问题显现。

解决办法

把这个路由的_controller改成完整的控制器::方法格式,因为这个路由对应列表分页逻辑,应该指向Article::list:

- routePath: '/page/{page}'
  _controller: 'Article::list'
  _arguments:
    page: currentPage

修改后,Extbase解析时会得到完整的控制器和方法名数组,就不会再触发未定义数组键的警告了。

额外检查建议

  • 确认所有路由的_controller都遵循ControllerName::ActionName的格式,避免只写控制器名的情况
  • 清理TYPO3的全部缓存(后台「清除缓存」选项),确保新的路由配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:29:08