名前付きスコープの開発
update()およびdelete()メソッド、およびwith()の 名前付きスコープのサポートが追加されました。 次の手法を使用できます。
Post::model()->published()->recently()->delete();
-
$posts=Post::model()->with('comments:recently:approved')->findAll();
クラスUserはCActiveRecordを拡張します { パブリック関数の関係() { 配列を返す( 'posts' => array(self :: HAS_MANY、 'Post'、 'authorID'、 「with」=>「comments:承認済み」)、 ); } }
SQLプロファイリング
SQLクエリプロファイリングを追加しました。 CProfileLogRouteのおかげで、各リクエストにかかる時間を測定できるようになりました。 また、CDbConnection :: getStats()を使用して、実行されたSQLクエリの合計数とそれらの合計実行時間を取得することもできます。
コンテキストロギング
これで、追加のコンテキスト情報をログに書き込むことができます(たとえば、変数$ _GET、$ _SERVER、セッションID、ユーザー名など)。
これは、CLogRoute :: filterプロパティを使用して構成されます。 例:
配列を返す( // ... 'preload' => array( 'log'、 'session')、 // ... 'コンポーネント' =>配列( // ... 'log' =>配列( 「クラス」=>「CLogRouter」、 'routes' =>配列( 配列( 「クラス」=>「CWebLogRoute」、 「レベル」=>「トレース、情報、エラー、警告」、 'filter' =>配列( 「クラス」=>「CLogFilter」、 'prefixSession' => true、 'prefixUser' => false、 'logUser' => false、 'logVars' =>配列()、 )、 )、 )、
CNCの改善
各リンク変換ルールは、urlSuffixおよびcaseSensetiveオプションを使用してより柔軟に構成できます。 これで、変換ルールは次の形式を取ります。
'pattern1'=>array('route1', 'urlSuffix'=>'.xml', 'caseSensitive'=>false)
ただし、CUrlManager :: useStrictParsingを使用すると、ルールのみに基づいてリンク変換モードを有効にできます。 次に、たとえば、ルールで未定義のGET変数を持つリンクは、/ page?var / value /という形式ではなく、/ page?var = valueという形式で表示されます。 これは、urlFormatが「path」に等しい場合にのみ機能します。
コントローラーでのエラー処理
Yiiでは、コントローラーアクションを使用してエラーを処理できるようになりました。 これは、構成ファイルで定義されます。
配列を返す( ...... 'コンポーネント' =>配列( 'errorHandler' =>配列( 'errorAction' => 'site / error'、 )、 )、 );
そして、目的のコントローラーの目的のアクションで、Yii :: app()-> errorHandler-> errorを使用します。
他の素敵なささいなこと
コンソールの改善
これ以降、コンソールは1回のリクエストですべてのデータベーステーブルのモデルを生成し、自動的に接続できます。
ファイルキャッシュ
キャッシュをファイルに保存するためのクラス(以前はYii拡張機能として登場していました)がディストリビューションに導入され、 -CFileCacheと呼ばれるようになりました 。
CMemCache
改善され、memcacheおよびmemcachedで動作するようになりました。
MySQLドライバー
MySQLを使用する場合、tinyint(1)フィールドはブール値として定義されます。
テキスト内のリンクを使用すると、強調表示された変更をより慎重に調べることができます。