Yii PHPフレームワークのバージョン2.0.12がリリースされました。 ここでインストールとアップグレードの手順を見つけます。

バージョン2.0.12はYii 2.0のマイナーリリースです。 それは百以上の改善と修正が含まれています。
このリリースには、既存のアプリケーションに影響する可能性のあるいくつかの変更が含まれています。 これらの変更はUPGRADE.mdで説明されています 。
プロジェクトをサポートしてくれたYiiコミュニティに感謝します!
GitHubにアスタリスクを付けることで、フレームワークの開発を追跡できます。 TwitterやFacebookを購読することもできます。
チームが他のことで忙しかったため、このリリースは遅れました。 たとえば、 新しいサイトとYiiConfに取り組んでいます
-Yiiの会議 。モスクワで間もなく開催されます。
Yii 2.1はすでに開発中であるため、 composer.jsonのバージョンが>=または*ではなく、 ~2.0.12として登録されていることを確認してください。 したがって、リリース2.1では、プロジェクトは確実に壊れません。
以下では、最も興味深いリリースの変更を検討します。 完全なリストはCHANGELOGにあります。
テスト
問題をタイムリーに検出するには、テストカバレッジが非常に重要です。 @ vladis84 、 @boboldehampsink 、 @KolyunyaおよびYiiコミュニティの他のメンバーのリリースにより、コードカバレッジの拡大に役立ちました。
@ schmunk42は、追加のdockerベースのテストをセットアップし、それをGitLabにデプロイしました 。 いくつかのテストはまだそこに落ちています。 主に国際化のためのデータの違いによる。 これは少し後で修正されます。
データベース
データベース層は、式の操作でいくつかの改善を受けました。 \yii\db\QueryTrait::limit() 、 \yii\db\QueryTrait::offset() 、 \yii\data\Sort 。
MSSQL
MSSQLサポートが大幅に改善されました。 回路の読み取り速度が大幅に向上し、 yii\db\mssql\QueryBuilder::resetSequence()メソッドが実装されました。
安全性
yii\base\Security::hkdf()改善されました。 現在、可能であれば、PHP> = 7.1.2のhash_hkdf()が使用されます。yii\captcha\CaptchaActionはrand()代わりにmt_rand()使用するようにmt_rand() 。
使いやすさ
移行テンプレートのデフォルトがsafeUp()およびsafeDown() 。 トランザクションでのスキーマの変更がサポートされていない場合(たとえば、MySQL)、変更はトランザクションなしで適用されます。
フレームワークのさまざまなコンポーネントはデフォルト値を取得しています:
totalCount指定されていない場合、 \yii\data\SqlDataProviderは独立してレコードをカウントします。- データプロバイダーはIDを自動的に公開します。 同じページでページネーションを使用する複数のプロバイダーが使用されている場合は、指定する必要がなくなりました。
format boolean設定されている場合、 yii\grid\DataColumnのフィルターはドロップダウンリストとして自動的に生成されます。
yii cacheコマンドは、コンソールからAPCキャッシュをクリアできないことを警告し始めました。
yii\filters\AccessRuleでは、ロールチェック機能にパラメーターを渡すことができるようになりました。
性能
yii\web\UrlManager 、デフォルトのルールを使用する場合のキャッシュ呼び出しyii\web\UrlRule::createUrl()サポートが追加されました。- DBコマンドでロギングとプロファイリングを無効にするオプションが追加されました。
yii\data\ActiveDataProviderは、モデルの数がゼロの場合、リクエストをyii\data\ActiveDataProviderません。
毎
StringHelperは、メソッドencode() / decode()を通じてURLセーフbase64を操作する方法を学びました。 これはさまざまなトークンに役立ちます。
yii\helpers\Html::img() srcsetを指定できるようになりsrcset :
[php] echo Html::img('/base-url', [ 'srcset' => [ '100w' => '/example-100w', '500w' => '/example-500w', '1500w' => '/example-1500w', ], ]);
yii\widgets\LinkPagerを使用すると、現在のページのボタンを無効としてレンダリングできます。 これを行うには、 disableCurrentPageButtonをtrueに設定します。
アクセス制御とバリデーターに必要な依存関係が少なくなりました:
yii\filters\AccessControlは、 userコンポーネントなしで使用できるようになりました。- バリデーターは
Yii::$app必要としなくなりました。