PHP8环境下Joomla模块modSidePanelHelper调用报错如何修复
错误原因
- 首次报错是因为
getModuleById()是实例方法,未加static声明,不能通过self::静态调用 - 二次报错是因为
modSidePanelHelper被定义为抽象类,PHP不允许直接实例化抽象类
正确修复方案
该方法内部没有依赖任何类实例属性,仅调用Joomla全局类操作数据库,直接将其改为静态方法即可,改动最小且无副作用:
- 找到
getModuleById的定义行,原代码为:
private function getModuleById($id) {
- 添加
static关键字,修改为:
private static function getModuleById($id) {
- 无需修改第121行的原有调用代码,
$enableModules[] = self::getModuleById($module->image);即可正常运行。
内容的提问来源于stack exchange,提问作者wisdom
相关产品推荐
相关产品推荐

