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



なしでクラスを使用することができました 。 同じアプローチを使用して、カーネルクラスをオーバーライドできます。



All Articles