PHP7.2中Yii2核心类Object报错

日期: 2018-02-04 分类: geeks

用docker搭建php服务器时,发现yii2核心类Object报错了。此时用的php版本是当前最新版的7.2

Fatal error: Cannot use ‘Object’ as class name as it is reserved in /var/www/yii/vendor/yiisoft/yii2/base/Object.php on line 77

出错原因

Object是php7.2中的保留类名,不可以再定义名称为Object的类了。

The object name was previously soft-reserved in PHP 7.0. This is now hard-reserved, prohibiting it from being used as a class, trait, or interface name.

解决方法

  • php版本降级(缓兵之计)
    经过测试,php7.2之前的版本都没有问题。这也与php官方文档的说明一致:从7.0版本开始软性保留,从7.2版本开始硬性保留。
  • 更改Yii2核心类Object为其他名称(权宜之计)
  • 等待Yii修复bug(长久之计)

参考文章