Yii 1.1.9

番号1.1.9のYii PHPフレームワークの安定バージョンがリリースされました。 このリリースには、約60の改善とバグ修正が含まれています。

変更の完全なリストは、対応するファイルにあります 。 以前のバージョンからアップグレードする前に、手順読むことが重要です。

ロシア語のドキュメントは、いつものように、完全に最新の状態です。 さらに、リリース時に見つかったすべてのタイプミスが修正されました。 yiiframework.ruでOrphusを使用しているすべての人に感謝します。

最も興味深い変更を検討してください。



ActiveRecord関係で「スルー」を定義するより便利な方法



しかし、thoughオプションはバージョン1.1.7で追加されましたが、構文はあまり便利ではなかったため、より明確にすることが決定されました。 現在の構文では、次の構文が使用されます。

 'comments' => array(self :: HAS_MANY、 'Comment'、array( 'key1' => 'key2')、 'through' => 'posts')、


上記のarray('key1'=>'key2')

key1は、 through指定されたリレーションで定義されたキーです(この場合、これはposts )。
key2は、リレーションが指すモデルで定義されたキーです(この場合、これはComment )。

throughHAS_ONEHAS_MANYの両方に使用できます。

この機能については、完全ガイドの「 リレーショナルアクティブレコード」セクションで詳しく説明しています。

モデルでの条件グループのサポート::リレーション()



モデルの関係を定義するときに条件グループを使用できるようになりました。

 'recentApprovedComments' => array(self :: BELONGS_TO、 'Post'、 'post_id'、 
     'scopes' =>配列( '承認済み'、 '最近'))、


条件のグループを1つだけ使用する場合は、文字列として指定できます。

指定されたキーでモデル間で結合する機能



このバージョンでは、データスキームに依存せずに、特定のペアPK-> FKの関係を作成することが可能になりました。 これは、たとえば、 Dayモデルに次の関係を指定できることを意味します。

 'jobs' => array(self :: HAS_MANY、 'Job'、array( 'date' => 'target_date'))、


この場合、 Dayは複数のJobが含まれる場合があります。 ただし、通常の方法では接続されていません。 キーをarray('fk'=>'pk')の形式で設定します。つまり、出力ではSQLのようになります

 SELECT * t日から
ジョブに参加t.date = job.target_date


Yiiでカーネルクラスをオーバーライドする機能:: $ classMap



Yiiの1.1.5から、事前にクラスをインポートし、明示的なインポートまたはincludeなしでクラスを使用することができました 。 同じアプローチを使用して、カーネルクラスをオーバーライドできます。

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


All Articles