Yii 2.0.6

PHPフレームワークYiiバージョン2.0.6のリリース。

インストールおよびアップグレードの手順は、 http://www.yiiframework.com/download/で入手できます

バージョン2.0.6はブランチ2.0のパッチリリースであり、70を超えるマイナーな改善と修正 、多数のドキュメントの改善、および翻訳の大幅な進歩が含まれています。

フレームワークの開発に関係する皆感謝します。 プルリクエスト、ディスカッション、その他のヘルプは不可欠です。

フレームワークの開発プロセスは、 アスタリスクを付けるか、GitHubの「監視」ボタンをクリックして監視できます
TwitterFacebookを購読することもできます。

以下は、最も興味深い革新の簡単な概要です。



改善された移行構文



当初、スキーマビルダーはバージョン2.1で計画していましたが、 pana1990vaseninmは素晴らしい仕事をし、移行の構文はより快適になりました。

$this->createTable('example_table', [ 'id' => $this->primaryKey(), 'name' => $this->string(64)->notNull(), 'type' => $this->integer()->notNull()->defaultValue(10), 'description' => $this->text(), 'rule_name' => $this->string(64), 'data' => $this->text(), 'created_at' => $this->datetime()->notNull(), 'updated_at' => $this->datetime(), ]); 


エラー処理



このリリースには、エラー処理をさらに安定した便利なものにするために設計された多くの修正と改善があります。

-Yiiは致命的なHHVMエラーを完全に処理するようになりました。
FileCacheがファイルへの書き込みに失敗した場合、これはログに表示されます。
yii\web\ErrorActionは404を表示するようになり、URLへの直接ナビゲーションの場合は空白ページではありません。
-ディレクトリが見つからないためにyii migrateない場合、そのパスがエラーに表示されます。
Json::encode()およびJson::decode() 、明確な例外をスローすることでエラーをより適切に処理します。
ErrorHandler::logException()は、文字列表現だけでなく、オブジェクト全体を記録するようになりました。

JavaScriptからActiveFormをより細かく制御



特定のフィールドのエラーを更新できます。

 //   $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', ["I have an error..."]); //   $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', ''); 

または、すべてのフィールドと履歴書を一度に:


 $('#contact-form').yiiActiveForm('updateMessages', { 'contactform-subject': ['Really?'], 'contactform-email': ['I don\'t like it!'] }, true); 


yii message機能強化



.potファイルの作成をサポートするようになりました。

このコマンドは、ネストされた呼び出しを完全にダイジェストします。

 Yii::t('app', 'There are new {messages} for you!', [ 'messages' => Html::a(Yii::t('app', 'messages'), ['user/notifications']), ]); 


また、新しい行がない場合でもソートが行われるようになり、差分が少なくなりました。

さらに、未使用行への@@追加を無効にするためにmarkUnusedオプションが追加されました。

資産



これで、公開するものとしないものを設定できます。

 class MyAsset extends AssetBundle { public $sourcePath = '@app/assets/js'; public $js = [ 'app.js', ]; public $depends = [ 'yii\web\YiiAsset', ]; public $publishOptions = [ 'except' => '*.ts', // exclude TypeScript sources // 'only' => '*.js', // include JavaScript only ]; } 


ディレクトリ名のハッシュアルゴリズムは、 web/assetsから変更できます。 これは、アプリケーション構成から直接実行できます。

 return [ // ... 'components' => [ 'assetManager' => [ 'hashCallback' => function ($path) { return hash('md4', $path); } ], ], ]; 


セッションストレージの追加フィールド



セッションリポジトリに追加データを簡単に保存できるようになりました。 これまでのところ、 yii\web\DbSessionのみがサポートされていますが、サポートは将来拡張される可能性があります。 構成するには、アプリケーション構成を変更する必要があります。

 return [ // ... 'components' => [ 'session' => [ 'class' => 'yii\web\DbSession', 'readCallback' => function ($fields) { return [ 'expireDate' => Yii::$app->formatter->asDate($fields['expire']), ]; }, 'writeCallback' => function ($session) { return [ 'user_id' => Yii::$app->user->id, 'ip' => $_SERVER['REMOTE_ADDR'], 'is_trusted' => $session->get('is_trusted', false), ]; } ], ], ]; 

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


All Articles