我们已经工作了6年的网站昨天刚刚开始崩溃。激活错误,我发现蓝宝石有错误。
该类应该存在于PHP 5.3中。而且,错误说它没有。
以下是创建错误的代码(来自Sapphire核心文件,不想修改它。)
所以问题是,我的主机可以从PHP中停用该类吗?我该怎么做才能解决错误?我无法真正更新蓝宝石,因为它在CMS(Silverstripe版本2.4.5)中使用,并且不会冒更新Silverstripe的风险(该网站已知不稳定)。
更新:
只是认为ReflectionClass确实存在(它从ReflectionClass中抛出一个错误)所以它是$ class变量,而不是ReflectionClass所期望的。
更新2:
$ class的Var_dump给出了
string(22) "GoogleSitemapDecorator" string(9) "Hierarchy" NULL NULL
array(1) { [0]=> string(22) "GoogleSitemapDecorator" } array(1) { [0]=> string(9) "Hierarchy" } array(2) { [0]=> NULL [1]=> float(0) } array(2) { [0]=> NULL [1]=> float(0) }
答案 0 :(得分:1)
错误消息显示它(尚未)捕获 ReflectionException
,这意味着它是ReflectionClass
类抛出的异常。此异常的消息是“类不存在”。堆栈跟踪显示您正在调用
ReflectionClass->__construct('')
意味着您将''
作为参数传递给new ReflectionClass
。当然,类''
可能确实不存在。
换句话说,$class
包含错误的值。
答案 1 :(得分:0)
这是多年前的问题。但是,为了提醒那些自问相同问题的人,已知PHP 5.3中存在ReflexionClass
。更重要的是,我最近用它开发了与PHP 5.3兼容的IoC / DI容器。
Fredy31的$class
错误值。