用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(长久之计)今天发现新版本v2.0.15.1
中已经修复这个bug了。
使用最新版本的yii即可