Yii Framework to announce the release of version 2.0.9. Please refer to the instructions at http://www.yiiframework.com/download/ to install or upgrade to this version.
Version 2.0.9 is a minor release of Yii 2.0 which contains about 60 minor new features and bug fixes.
There are two minor changes that may affect your existing applications so check the UPGRADE.md file.
The development progress of Yii 2 by starring or watching Yii 2.0 GitHub Project. You may also follow Yii Twitter feeds or join Yii Facebook group to connect with other Yii developers. There is also a forum thread about this news announcement.
Below we summarize some of most important features/fixes included in this release. A complete list of changes can be found in the CHANGELOG.
\yii\base\ActionFilter now supports wildcards for
except options which is useful when it’s attached to the module or application:
'as filter' => [
'class' => 'app\filters\SomeFilter',
'only' => [
'particular/*', // all actions in controller 'particular'
'*/captcha', // all 'captcha' actions in all controllers
- Message translation performance was increased for database backend by examining queries and adding proper indexes.
- Oracle database schema was improved to be read faster.
Schema builder and migrations
Schema builder which is used in migrations got some enhancements.
First of all, there’s a new method
null() to specify nullability explicitly. Also the column nullability is now set automatically in case default value is
$type = $this->string(42)->null();
Moreover, a new method was added to append custom SQL to the end of query generated:
$type = $this->string(15)->notNull()->append('collate ascii_bin')->append('character set ascii');
Migrations syntax for automatic generation of code was adjusted a bit.
_column suffixes are now required:
./yii migrate/create create_user_table
./yii migrate/create add_name_column_to_user_table
Data providers and widgets
This release enhancements for grids and providers are all about labels.
\yii\data\ArrayDataProvider got a
$modelClass property that specifies a model which is used to provide column labels when data array is empty. Additionally
\yii\grid\DataColumn, which defines base behavior for all data columns, is now trying to extract attribute label from the
filterModel of the grid in case it cannot get it otherwise.
A sub-interface called
CheckAccessInterface was extracted from RBAC
ManagerInterface which could be useful for custom access checking implementations.
\yii\web\User::loginByCookie() was refactored in order to make it easier to override.
When listing files in an asset bundle you can set paths to
null to tell asset manager not to register them at all. It is useful for registering extra scripts for development environment:
class ReactAsset extends AssetBundle
public $sourcePath = null;
public $js = [
YII_ENV_DEV ? "//fb.me/react-15.0.1.js" : "//fb.me/react-15.0.1.min.js",
YII_ENV_DEV ? "//fb.me/react-dom-15.0.1.js" : "//fb.me/react-dom-15.0.1.min.js",
YII_ENV_DEV ? "//cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.js" : null,
\yii\log\Target::$logVars now supports fine-grained configurations of what’s to be logged:
_SESSION– log global session variable. That’s the same as before.
_SESSION.id– log only
!_SESSION.secret– don’t log
The logic for such filtering was extracted to
\yii\helpers\ArrayHelper::filter() so you can use it if needed.
You can now configure default flavor for
yii\helpers\Markdown calls via