一个意料之外的问题发生了。在PHP 5.6上的Concrete 5中没有出现对象上下文错误时使用$ this

时间:2017-04-06 10:52:15

标签: php concrete5 php-5.6 concrete

我从2012年开始运行Concrete 5的旧版本(5.5.2.1),我在每次加载页面时遇到问题,我收到以下错误:

  

发生意外错误。   不在对象上下文中时使用$ this

这是创建错误的代码,或者至少是调用代码:

## now we display (provided we've gotten this far)
$v = View::getInstance();
$v->render($c);

当我用var_dump转储$ v时,我得到了这个:

object(View)#4 (8) { 
    ["viewPath":"View":private]=> NULL 
    ["controller"]=> NULL 
    ["headerItems":"View":private]=> array(0) { }
    ["footerItems":"View":private]=> array(0) { } 
    ["themePaths":"View":private]=> array(8) { 
        ["/dashboard"]=> string(9) "dashboard" 
        ["/dashboard/*"]=> string(9) "dashboard" 
        ["/page_forbidden"]=> string(8) "concrete" 
        ["/page_not_found"]=> string(8) "concrete" 
        ["/install"]=> string(8) "concrete" 
        ["/login"]=> string(8) "concrete" 
        ["/register"]=> string(8) "concrete" 
        ["/maintenance_mode"]=> string(8) "concrete" 
    } 
    ["areLinksDisabled":"View":private]=> bool(false) 
    ["isEditingEnabled":"View":private]=> bool(true) 
    ["error"]=> string(0) "" 
}

不幸的是,我的廉价主机在cPanel中有一个错误,这意味着我无法访问错误日志以查看实际存在的错误,行号,类等。

这是一个常见问题吗?我假设我的主机已升级PHP(目前为5.​​6.23),这已经破坏了我的安装,因为自从去年5月修复了一个bug以来我没有触及Concrete 5。

感谢。

1 个答案:

答案 0 :(得分:0)

这确实是由我的主机将网站升级到PHP 7引起的。具体5.5不能在PHP 7上运行。

恢复到PHP 5.6工作,现在网站恢复正常。