予定通りに、PHP Yiiフレームワークバージョン2.0.3のリリースがリリースされました。 更新とインストールの手順は、
http: //www.yiiframework.com/download/で説明されてい
ます 。
このバージョンには、約50の改善と修正が含まれています。 完全なリストは
GitHubで
表示できます。 チームはこの機会に
私たちを助けてくれた
みんなに感謝
します 。
ドキュメントを改善し、多くの言語に翻訳してくださった方々に感謝します。
GitHubでフレームワークの開発プロセスをフォローするには、プロジェクトにアスタリスクを付けるか、監視ボタンを使用します。
Twitterと
Facebookを購読して
ください 。
以下では、このバージョンの最も重要な改善点を検討します。
暗号化
これは内部的なものですが、かなり深刻な変更です。
yii\base\Security
は
yii\base\Security
Mcrypt(これは8年間廃止されました)をOpenSSLに置き換えました。Yiiの
yii\base\Security
面倒を見るTom Worsterに感謝する価値があります。 OpenSSLはほとんどのPHPディストリビューションにデフォルトで存在するため、互換性の問題は発生しません。 しかし、もしあれば、私に知らせてください。
RBACキャッシング
RBACデータをデータベースに保存すると、パフォーマンスが理想的ではないことに気付くかもしれません。各チェックの結果、かなり多くのSQLクエリが発生します。 これを修正するために、キャッシュを
yii\rbac\DbManager
。 階層全体がキャッシュに保存されるため、
checkAccess()
パフォーマンスが大幅に向上します。 デフォルトでは、RBACキャッシングは無効になっています。 次のように含まれています。
return [ 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'cache' => 'cache',
ページキャッシュ
以前は、
ページキャッシュは HTMLのみ
に制限されていました。 無効なHTTPヘッダーのため、REST APIで機能しませんでした。 これで、
yii\filters\PageCache
を使用して、さまざまなデータ型とヘッダーをキャッシュできます。 これは、RESTコントローラーの
index
アクションをキャッシュする方法です。
public function behaviors() { return [ [ 'class' => 'yii\filters\PageCache', 'only' => ['index'], 'duration' => 60, ], ]; }
新鮮なリソースの強制ダウンロード
キャッシュのもう1つの改善点は、新鮮なリソースの強制読み込みのサポートです。これは、JSファイルまたはCSSファイルのHTTPキャッシュが有効になっている場合に運用サーバーでしばしば役立ちます。 この場合、リソースファイルに変更を加えても、クライアントはキャッシュから古いバージョンを取得する場合があります。 これで、
yii\web\AssetManager::appendTimestamp
をtrueに設定できます。 ファイルの変更時間はJSおよびCSSリソースURLに追加されるため、クライアントは常に最新バージョンを取得します。
return [ 'components' => [ 'assetManager' => [ 'class' => 'yii\web\AssetManager', 'appendTimestamp' => true, ],
現在のURLへの変更
新しいメソッドが追加されました
yii\helpers\Url::current()
、GETパラメーターを追加または削除することで現在のURLを簡単に変更できます。
ログローテーションをオフにする
yii\log\FileTarget
を介してファイルにログを書き込む場合、自動ファイルローテーションを無効にできるようになりました。これは、追加のユーティリティがこれを行う場合に便利です。
return [ 'components' => [ 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'enableRotation' => false, ], ], ], ], ];
データ属性
yii\helpers\Html
を使用する場合、
data
属性は特別な方法で処理されます:
ng
と
data-ng
も処理されるようになりました。 これは主に、AngularJSで作業する人に役立ちます。 他の属性の場合、配列はJSONに変換されます。
yii\helpers\Html::$dataAttributes
追加することにより、特別な方法で処理する属性を指定できます。
入力クロッピング
trim
検証ルールを使用すると、クライアント上でプルーニングが実行されるようになります。 この検証動作を無効にするには、
trim
検証ルールの
enableClientValidation
プロパティをfalseに設定します。
最大フィールド長
yii\helpers\Html::activeTextInput()
または
yii\widgets\ActiveField::textInput()
を使用して入力フィールドを作成する場合、
maxlength
プロパティを設定する必要があります。 対応するモデルフィールドに
string
検証ルールがある場合、そこから
maxlength
を取得できます。 これを行うには、
maxlength
をtrueに設定する必要があります。
設定可能なオブジェクト
これで、新しい
yii\base\Configurable
インターフェースを使用して、クラスを「構成可能」としてマークできます。 この場合、
yii\di\Container
は、コンストラクターが構成配列を受け入れることを想定しています。
class Foo implements \yii\base\Configurable { public function __construct($a, $b, $config = []) { } } $container = new \yii\di\Container; $object = $container->get('Foo', [1, 2], ['prop1' => 3]);
以前は、同様の効果を得るために
yii\base\Object
から継承する必要がありました。