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
必要としなくなりました。