Yii 2.0.2

PHPフレームワークチームは、バージョン2.0.2のリリースをお知らせします。 インストールとアップグレードの手順は、 http://www.yiiframework.com/download/にあります



バージョン2.0.2はYii 2.0パッチリリースであり、約40のマイナーな機能強化と修正が含まれています。 変更の完全なリストはGitHubにあります 。 このリリースの準備を手伝ってくれたみんなに感謝します



Yii 2の開発プロセスをフォローしたい場合は、アスタリスクを付けるか、GitHubのプロジェクトページの監視ボタン使用しますTwitterFacebookもあります。



このリリースへの最も重要な追加を検討してください。







ルートエイリアス





2.0.2より前では、YiiはパスエイリアスとURLをサポートしていました。 ルートのエイリアスを設定できるようになりました。 ルートエイリアスを設定したら、 Url::to()



およびUrl::toRoute()



を使用してURLを作成するときに使用できます。



 use yii\helpers\Url; Yii::setAlias('@posts', 'post/index'); // /index.php?r=post/index echo Url::to(['@posts']); echo Url::toRoute('@posts');
      
      







この機能は、ルート構造の変更が予想される場合に役立ちます。 エイリアスを使用する場合、URL作成コードを変更する必要はありません。



依存コンポーネントの構成





多くのコンポーネントのプロパティは、 yii\caching\DbCache::db



またはyii\web\CacheSession::cache



などの他のコンポーネントのIDを取得します。 場合によっては、単体テスト用の新しいコンポーネントを作成しないために、構成配列を使用してこのプロパティを設定する必要があります。



 $cache = Yii::createObject([ 'class' => 'yii\caching\DbCache', 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => '...', ], ]);
      
      







外部コンポーネントに依存する新しいクラスを開発している場合、次のコードを使用して同様の機会を提供できます。



 use yii\base\Object; use yii\db\Connection; use yii\di\Instance; class MyClass extends Object { public $db = 'db'; public function init() { $this->db = Instance::ensure($this->db, Connection::className()); } }
      
      







上記のコードを使用すると、次のいずれかの値でdb



プロパティを構成できます。







不変のナメクジ





yii\behaviors\SluggableBehavior



を使用する場合、新しいプロパティimmutable



true



設定できるようになりました。 この場合、一度作成されたスラッグは、モデルを再度保存しても変更されません。 これはSEOに便利です。一度インデックス付けされたコンテンツは同じURLのままになります。



DatePickerウィジェットで代替言語を自動的に選択する





yii\jui\DatePicker



は、指定された言語が見つからない場合、代替言語を自動的に選択するようになりました。 これは、地域やバリアントを含むロケールIDとしてlanguage



プロパティを設定するときに便利です。 たとえば、 language



de-DE



設定し、ウィジェットが言語ファイル/ui/i18n/datepicker-de-DE.js



見つけられない場合、言語de



およびファイル/ui/i18n/datepicker-de.js



自動的に使用されます。



検証エラーの転送





yii\base\Model



クラスには、1つのモデルから別のモデルに検証エラーを渡すことができるaddErrors()



メソッドが含まれるようになりました。 たとえば、ActiveRecordモデルのフォームクラスがあり、ActiveRecordモデルにフォーム検証エラーを渡す必要がある場合、次のようにこれを行うことができます。



 use yii\base\Model; use yii\db\ActiveRecord; class MyForm extends Model { public $model; public function process() { // ... if (!$this->validate()) { $this->model->addErrors($this->getErrors()); // .... } } }
      
      






All Articles