Yii PHPフレームワークの新しいバージョンがリリースされ、 80を超える改善と修正が含まれています。 インストールとアップグレードの手順はにあります。 このリリースには、既存のアプリケーションの動作に影響する可能性のある4つの小さな変更が含まれていることに注意してください。 必ずUPGRADE.mdを読んでください 。
素晴らしいプルリクエストとディスカッションをしてくれた素晴らしいコミュニティに感謝します。 あなたがいなければ、このリリースは起こりませんでした! GitHubにアスタリスクを付けることで、Yii 2開発プロセスの監視を開始できます 。 TwitterとFacebookを購読してください。 コメントでリリースについて議論できます。
変更の完全なリストはCHANGELOGにあります。 次に、最も興味深いものを検討します。
URL
新しいyii\web\UrlNormalizer
使用yii\web\UrlNormalizer
と、URIのリクエストを正規化するyii\web\UrlNormalizer
ができyii\web\UrlNormalizer
。これは、検索エンジンの最適化に非常に重要な、スラッシュが最後に存在するか、欠落しています。 詳細な説明は、公式マニュアルの「 URL正規化 」セクションにあります。
移行
マイナーな修正に加えて、移行は大幅に改善されました。 名前空間を使用する場合、複数の場所から同時に移行を開始できます。 これを行うには、コンソールコントローラーのmigrationNamespaces
プロパティを構成する必要があります。
return [ 'controllerMap' => [ 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationNamespaces' => [ 'app\migrations', 'some\extension\migrations', ], //'migrationPath' => null, // ], ], ];
エラー処理
書き込みおよび読み取りセッションでのエラーはデバッグモードで隠されなくなり、開発段階でほとんどの問題を簡単に特定できるようになりました。
リクエスト
現在のリクエストのホスト名を返す新しいメソッドyii\web\Request::getHostName()
があります。
multipart/form-data
(たとえば、ファイルのダウンロード)としてエンコードされた非POSTリクエストは、 yii\web\MultipartFormDataParser
介してyii\web\MultipartFormDataParser
できるようになりました。 これを利用するには、 Request::parsers
を次のように構成する必要があります。
return [ 'components' => [ 'request' => [ 'parsers' => [ 'multipart/form-data' => 'yii\web\MultipartFormDataParser' ], ], // ... ], // ... ];
その後、 Request::getBodyParams()
を呼び出すと、リクエストは適切な変数に解析されます。 $_FILES
を含む。
データベース
ActiveRecordの新しい動作が追加されました。 yii\behaviors\AttributeTypecastBehavior
では、属性値の型を自動的にyii\behaviors\AttributeTypecastBehavior
できます。
タイプはattributeTypes
を介して設定されattributeTypes
。
use yii\behaviors\AttributeTypecastBehavior; class Item extends \yii\db\ActiveRecord { public function behaviors() { return [ 'typecast' => [ 'class' => AttributeTypecastBehavior::className(), 'attributeTypes' => [ 'amount' => AttributeTypecastBehavior::TYPE_INTEGER, 'price' => AttributeTypecastBehavior::TYPE_FLOAT, 'is_active' => AttributeTypecastBehavior::TYPE_BOOLEAN, ], 'typecastAfterValidate' => true, 'typecastBeforeSave' => false, 'typecastAfterFind' => false, ], ]; } // ... }
attributeTypes
設定されていない場合、値は検証ルールに基づいて自動的に決定されます。
use yii\behaviors\AttributeTypecastBehavior; class Item extends \yii\db\ActiveRecord { public function rules() { return [ ['amount', 'integer'], ['price', 'number'], ['is_active', 'boolean'], ]; } public function behaviors() { return [ 'typecast' => [ 'class' => AttributeTypecastBehavior::className(), 'owner' => $this, // 'attributeTypes' `rules()` ], ]; } // ... }
yii\mutex\OracleMutex
も追加されましたyii\mutex\OracleMutex
機能によるロックの実装。
コンソール
コンソールで、 -h
または--help
を渡すことでコマンドの説明を呼び出すことができ--help
。
テスト中
Codeceptionの最近の変更に対応するために、アプリケーションテンプレートが変更されました。 この詳細については、Codeception Webサイトの新しいセクション「 Yii 2.0クイックスタートガイド 」を参照してください。 高度なプロジェクトテンプレートを使用する場合は、そのテストドキュメントをご覧ください。