php7.4运行Yii框架2.0.14以下的版本会出现报错
PHP7.4运行Yii2框架报错信息.png
问题的原因是php7.4规定了object关键字是不能作为类名的,但是yii2.0.14一下版本的底层类的命名是object
查找可以发现/vendor/yiisoft/yii2/base/Object.php基类
/vendor/yiisoft/yii2/base/Object.php.png
我们要兼容php7.4就要把这个Object类全部替换成其他名字
查看yii版本2.0.14以上的框架可以发现这里的Object被升级为了BaseObject,所以我们也使用BaseObject来替换该名称
下面如果干净的替换Object类名的步骤
- 先替换Object文件名和类名为BaseObject
- 在框架中搜索\yii\base\Object,全部替换为yii\base\BaseObject
- 在框架中搜索extends Object,全部替换为extends BaseObject
- 找到vendor/yiisoft/yii2/classes.php文件, 把'yii\base\Object' => YII2_PATH . '/base/Object.php',替换为'yii\base\BaseObject' => YII2_PATH . '/base/BaseObject.php',
替换完成,使用php7.4访问项目,成功访问.