このバージョンには、100以上の改善と修正 、ドキュメントの明確化と翻訳が含まれています。
更新するには、 UPGRADE.mdで説明されている追加の手順を実行する必要がある場合があります。
素晴らしいコミュニティに感謝します。これにより、多くのプルリクエストとディスカッションが行われました。 あなたがいなければ、このリリースは起こらなかっただろう。 ありがとうございます!
GitHubのプロジェクトページでアスタリスクを付けるか、ウォッチをクリックして、Yii開発プロセスをフォローできます。 TwitterとFacebookグループもあります。
さて、このリリースの最も興味深い改善と修正を検討してください。
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インターフェイスに追加されました。 役割と権限の管理パネルを開発するときに、それは確かに役立ちます。
エラー処理と出力
- JSON処理時のPHP 5.5エラーコードのサポートが追加されました。 これにより、JSONのエンコードが失敗した理由を正確に判断できます。
-
VarDumper::dump()
、PHP__debugInfo()
マジックメソッドを使用することを学習しました。 - セキュリティ上の理由から、エラーハンドラはエラーページに
$_ENV
と$_SERVER
を表示しなくなりました。 表示されるデータは、yii\web\ErrorHandler::$displayVars
介して設定されます。 -
yii\helpers\VarDumper::export()
、循環リンクの操作方法を学習しました。これにより、ロギングとデバッグパネルの信頼性が向上します。