Upgrading Instructions for Yii Framework v2
!!!IMPORTANT!!!
The following upgrading instructions are cumulative. That is, if you want to upgrade from version A to version C and there is version B between A and C, you need to following the instructions for both A and B.
Upgrade from Yii 2.0 Beta
If you used
clearAll()
orclearAllAssignments()
ofyii\rbac\DbManager
, you should replace them withremoveAll()
andremoveAllAssignments()
respectively.If you created RBAC rule classes, you should modify their
execute()
method by adding$user
as the first parameter:execute($user, $item, $params)
. The$user
parameter represents the ID of the user currently being access checked. Previously, this is passed via$params['user']
.If you override
yii\grid\DataColumn::getDataCellValue()
with visibilityprotected
you have to change visibility topublic
as visibility of the base method has changed.If you have classes implementing
yii\web\IdentityInterface
(very common), you should modify the signature offindIdentityByAccessToken()
aspublic static function findIdentityByAccessToken($token, $type = null)
. The new$type
parameter will contain the type information about the access token. For example, if you useyii\filters\auth\HttpBearerAuth
authentication method, the value of this parameter will beyii\filters\auth\HttpBearerAuth
. This allows you to differentiate access tokens taken by different authentication methods.If you are sharing the same cache across different applications, you should configure the
keyPrefix
property of the cache component to use some unique string. Previously, this property was automatically assigned with a unique string.If you are using
dropDownList()
,listBox()
,activeDropDownList()
, oractiveListBox()
ofyii\helpers\Html
, and your list options use multiple blank spaces to format and align option label texts, you need to specify the optionencodeSpaces
to be true.If you are using
yii\grid\GridView
and have configured a data column to use a PHP callable to return cell values (viayii\grid\DataColumn::value
), you may need to adjust the signature of the callable to befunction ($model, $key, $index, $widget)
. The$key
parameter was newly added in this release.yii\console\controllers\AssetController
is now using hashes instead of timestamps. Replace all{ts}
with{hash}
.The database table of the
yii\log\DbTarget
now needs aprefix
column to store context information. You can add it withALTER TABLE log ADD COLUMN prefix TEXT AFTER log_time;
.The
fileinfo
PHP extension is now required by Yii. If you useyii\helpers\FileHelper::getMimeType()
, make sure you have enabled this extension. This extension is builtin in php above5.3
.Please update your main layout file by adding this line in the
<head>
section:<?= Html::csrfMetaTags() ?>
. This change is needed becauseyii\web\View
no longer automatically generates CSRF meta tags due to issue #3358.