PHP 8.1上的Yii框架页面出现致命错误

uwopmtnx  于 2022-11-09  发布在  PHP
关注(0)|答案(2)|浏览(238)

当我更新到PHP 8.1时,我遇到了这个错误:

Fatal Error: Cannot use 'Object' as a class name as it is reserved on line 77

我猜它用了一个保留字作为一个实际的类。我该怎么解决这个问题呢?

gcmastyq

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扩展:
祝你好运

ukxgm1gy

ukxgm1gy2#

解决方案取决于错误发生的确切位置。

错误在属于Yii框架本身的文件中

您必须将框架升级到较新版本。版本2.0.13引入yii\base\BaseObject作为基类,而不是yii\base\Object

错误在某个第三方库中

你必须寻找那个库的升级。

错误位于直接属于您的应用程序的类中

这可能意味着你的类扩展了yii\base\Object。你必须像这样修改类来扩展yii\base\BaseObject。这要求Yii框架的版本至少是2.0.13。但是因为错误没有在框架中出现,所以它的版本应该是可以的。

相关问题