John Doe Asked: 2020-04-03 10:36:17 +0800 CST 2020-04-03 10:36:17 +0800 CST 2020-04-03 10:36:17 +0800 CST 执行 Yii2 应用程序时出错 - 不能使用“对象”作为类名,因为它是保留的 772 我提出了以下问题,当打开我的 Yii2 应用程序时,我收到以下错误Cannot use 'Object' as class name as it is reserved Yii2 的版本是 2.0.15,PHP 的版本是 7.2.3 php 2 Answers Voted Best Answer Fryntiz 2020-04-09T15:30:27+08:002020-04-09T15:30:27+08:00 它告诉您 Object 类不再存在并使用 BaseObject 代替。 当时我降级回 7.1 版本是因为我读到 yii2 框架中的某些东西由于某些 php 更改而存在问题(现在 object 是该语言的保留字 → https://www.yiiframework.com/doc /api/2.0/yii-base-object ) 您需要手动修复所有继承自yii\base\Object并且现在应该继承自的类yii\base\BaseObject。 理想情况下,对于此过程,您应该遵循官方更新说明: https ://github.com/yiisoft/yii2/blob/2.0.13/framework/UPGRADE.md#upgrade-from-yii-2012 christian david lucumi mosquer 2020-06-30T20:52:27+08:002020-06-30T20:52:27+08:00 由于在 php 版本 7.2.3 中 Object 是保留字,因此您需要重命名文件和扩展该文件的类。 mv vendor/yiisoft/yii2/base/Object.php vendor/yiisoft/yii2/base/BaseObject.php. 重命名文件。 find ./vendor/yiisoft/ -type f -exec sed -i 's/class Object/class BaseObject/g' {} +. 重命名课程。 find ./vendor/yiisoft/ -type f -exec sed -i 's/extends Object/extends BaseObject/g' {} +. 在从它扩展的类中重命名它。 find ./vendor/yiisoft/ -type f -exec sed -i 's/yii\\base\\Object/yii\\base\\BaseObject/g' {} +. 修改与类关联的路由。 find ./vendor/yiisoft/ -type f -exec sed -i 's/\/base\/Object.php/\/base\/BaseObject.php/g' {} +i. 在 classes.php 文件中编辑文件的路径
它告诉您 Object 类不再存在并使用 BaseObject 代替。
当时我降级回 7.1 版本是因为我读到 yii2 框架中的某些东西由于某些 php 更改而存在问题(现在 object 是该语言的保留字 → https://www.yiiframework.com/doc /api/2.0/yii-base-object )
您需要手动修复所有继承自
yii\base\Object
并且现在应该继承自的类yii\base\BaseObject
。理想情况下,对于此过程,您应该遵循官方更新说明: https ://github.com/yiisoft/yii2/blob/2.0.13/framework/UPGRADE.md#upgrade-from-yii-2012
由于在 php 版本 7.2.3 中 Object 是保留字,因此您需要重命名文件和扩展该文件的类。
mv vendor/yiisoft/yii2/base/Object.php vendor/yiisoft/yii2/base/BaseObject.php
. 重命名文件。find ./vendor/yiisoft/ -type f -exec sed -i 's/class Object/class BaseObject/g' {} +
. 重命名课程。find ./vendor/yiisoft/ -type f -exec sed -i 's/extends Object/extends BaseObject/g' {} +
. 在从它扩展的类中重命名它。find ./vendor/yiisoft/ -type f -exec sed -i 's/yii\\base\\Object/yii\\base\\BaseObject/g' {} +
. 修改与类关联的路由。find ./vendor/yiisoft/ -type f -exec sed -i 's/\/base\/Object.php/\/base\/BaseObject.php/g' {} +i
. 在 classes.php 文件中编辑文件的路径