当我更新到PHP 8.1时,我遇到了这个错误:
Fatal Error: Cannot use 'Object' as a class name as it is reserved on line 77
我猜它用了一个保留字作为一个实际的类。我该怎么解决这个问题呢?
gcmastyq1#
您需要按照this page上的说明进行升级。例如,要使用php 7,8,必须按照本节中的说明操作。
For compatibiliy with PHP 7.2 which does not allow classes to be named Object anymore, we needed to rename yii\base\Object to yii\base\BaseObject.
这也适用于php 8。
从Yii 2.0.12升级
如果您想在项目中将PHP升级到7.2版,则需要删除所有扩展yii\base\Object的大小写,并改为从yii\base\BaseObject扩展:祝你好运
yii\base\Object
yii\base\BaseObject
ukxgm1gy2#
解决方案取决于错误发生的确切位置。
错误在属于Yii框架本身的文件中
您必须将框架升级到较新版本。版本2.0.13引入yii\base\BaseObject作为基类,而不是yii\base\Object。
错误在某个第三方库中
你必须寻找那个库的升级。
错误位于直接属于您的应用程序的类中
这可能意味着你的类扩展了yii\base\Object。你必须像这样修改类来扩展yii\base\BaseObject。这要求Yii框架的版本至少是2.0.13。但是因为错误没有在框架中出现,所以它的版本应该是可以的。
2条答案
按热度按时间gcmastyq1#
您需要按照this page上的说明进行升级。
例如,要使用php 7,8,必须按照本节中的说明操作。
这也适用于php 8。
从Yii 2.0.12升级
如果您想在项目中将PHP升级到7.2版,则需要删除所有扩展
yii\base\Object
的大小写,并改为从yii\base\BaseObject
扩展:祝你好运
ukxgm1gy2#
解决方案取决于错误发生的确切位置。
错误在属于Yii框架本身的文件中
您必须将框架升级到较新版本。版本2.0.13引入
yii\base\BaseObject
作为基类,而不是yii\base\Object
。错误在某个第三方库中
你必须寻找那个库的升级。
错误位于直接属于您的应用程序的类中
这可能意味着你的类扩展了
yii\base\Object
。你必须像这样修改类来扩展yii\base\BaseObject
。这要求Yii框架的版本至少是2.0.13。但是因为错误没有在框架中出现,所以它的版本应该是可以的。