目前开发用的yii2基于php7.1.33构建,鉴于7.1曾经进行保护,打算更新php版本到7.4,并且将yii2的版本从2.0.15.1降级到最新的2.0.43。
此文记录一下批改步骤
object批改
谬误提醒:
PHP Compile ErrorCannot use yii\base\Object as Object because 'Object' is a special class name
谬误起因:
php7.2开始不反对应用object作为类名,因而将所有继承至\yii\base\Object
的Object批改为\yii\base\Object
controller批改
谬误提醒:
Yii2 Call to a member function validateCsrfToken() on string
谬误起因:
自yii2.0.36开始,
yii2退出了一个类变量 $request,在init函数中初始化,因而如果重写controller的init办法,必须执行 parent::init()。
花括号批改
谬误提醒:
PHP Deprecated WarningArray and string offset access syntax with curly braces is deprecated
谬误起因:
应用大括号拜访数组及字符串索引的形式在php7.4中已被废除。请应用 $var[$idx] 的语法来代替 $var{$idx}。
例:php 7.4 不再容许应用花括号来拜访数组的元素。
$arr = array('1','2','3'); //定义一个数组:echo $arr[0]; //正确echo $arr{0}; //7.4以前正确,7.4谬误
数组非空批改
谬误提醒:
Notice: Trying to access array offset on value of type null
谬误起因:
php7.4不反对以数组模式拜访非数组
尝试以数组形式拜访 null,bool, int,float 或 resource (例如 $null["key"])将会抛出 notice 告诉。
因而在拜访一个可能为空的数组时要先判断数组非空