Yii 2.0.7

Yii PHPフレームワークのバージョン2.0.7がリリースされました。 インストールまたはアップグレードの方法は、 http: //www.yiiframework.com/download/で説明されています

このバージョンには、100以上の改善と修正 、ドキュメントの明確化と翻訳が含まれています。

更新するには、 UPGRADE.mdで説明されている追加の手順を実行する必要がある場合があります。

素晴らしいコミュニティに感謝します。これにより、多くのプルリクエストとディスカッションが行われました。 あなたがいなければ、このリリースは起こらなかっただろう。 ありがとうございます!

GitHubのプロジェクトページでアスタリスクを付けるか、ウォッチクリックして、Yii開発プロセスをフォローできます。 TwitterFacebookグループもあります。

さて、このリリースの最も興味深い改善と修正を検討してください。

IP Validator



新しいバリデーターはIPをチェックして、明確な対応、範囲、マスクを確認できます。 別のバリデーターとして、またはモデルのrules()メソッドの一部として使用できます。

 public function rules() { return [ ['address', 'ip', 'ranges' => [ '192.168.10.128' '!192.168.10.0/24', 'any' //    ]], ]; } 


バリデータの機能については、マニュアルクラスコメント、および
テスト

国際化



フォーマッタは新しいメソッドasDuration()を取得しました。これにより、DateIntervalオブジェクト 、秒数、またはISO8601文字列で表される時間間隔から読み取り可能な文字列を取得できます。

 echo Yii::$app->formatter->asDuration(131); //  "2 minutes, 11 seconds" 


ここで、 yii\i18n\Formatter::$calendar日付をフォーマットするカレンダーを選択できます。 たとえば、次のようにペルシャ暦を使用できます。

 Yii::$app->formatter->locale = 'fa_IR@calendar=persian'; Yii::$app->formatter->calendar = \IntlDateFormatter::TRADITIONAL; Yii::$app->formatter->timeZone = 'UTC'; $value = 1451606400; // Fri, 01 Jan 2016 00:00:00 (UTC) echo Yii::$app->formatter->asDate($value, 'php:Y'); //  "۱۳۹۴" 


詳細な説明は、クラスのドキュメントにあります

さらに、URLのコンテキスト外の音訳は、 Inflector::transliterate()として利用できるようになりました。これは、ベトナム語などの言語向けに開発するときにキーワードやその他のメタデータを生成するのに役立ちます。

データベース



修正に加えて、いくつかの興味深い改善がリリースに含まれました。 Query::groupBy()およびQuery::orderBy()では、 yii\db\Expression使用できます:

 $expression = new Expression('SUBSTR(name, 2)'); $users = (new \yii\db\Query) ->from('user') ->orderBy($expression) ->limit(10) ->all(); 


SQLiteの場合、DSNでエイリアスを使用できるようになりました。

 'db' => [ 'dsn' => 'sqlite:@app/db/database.sqlite3', ] 


関連レコードを持つJOINの場合、Active Recordにはテーブルに名前を付ける簡単な方法があります。 以前はjoin()使用できた構文が、 joinWith()使用できるようになりました。

 // join-       orders.id $query->joinWith(['orders o'])->orderBy('o.id'); 


新しい移行構文の改善



2.0.6で導入された新しい移行構文には、いくつかの改善が加えられました。 まず、 unsignedサポートです。

 'createdBy' => $this->integer(10)->unsigned(), 


次に、式をデフォルト値として使用できるようになりました。

 $this->integer()->defaultExpression('CURRENT_TIMESTAMP'); 


コンソール移行ジェネレーター



./yii migrate/createチーム./yii migrate/createよりスマートになりました。 作成された移行の名前とパラメーターに基づいて、彼女は移行コードを生成する方法を学びました。

 ./yii migrate/create create_post --fields=title:string,body:text 


生成されます:

 class m150811_220037_create_post extends Migration { public function up() { $this->createTable('post', [ 'id' => $this->primaryKey(), 'title' => $this->string(), 'body' => $this->text() ]); } public function down() { $this->dropTable('post'); } } 


構文の詳細は、マニュアルに記載さいます 。 イノベーションにより時間を節約できることを願っています。

RBACインターフェイス拡張



getUserIdsByRole()メソッドがRBACインターフェイスに追加されました。 役割と権限の管理パネルを開発するときに、それは確かに役立ちます。

エラー処理と出力



Source: https://habr.com/ru/post/J277201/


All Articles