2009-08-14 11 views
0

一部のWebサイトで使用される新しいデータオブジェクトを実装するとき、私はいつも同じ問題に遭遇します。このオブジェクトを埋めるためにnaturaly私には思える...PHP MVC - 異なるレイヤー間でデータを渡す方法 - オブジェクトまたは配列

object: news 
news subobjects: mediaItems, user, category 

私はusualy関連オブジェクト(オブジェクトのリスト)の遅延ロードを実装し、また、一度にニュースのオブジェクトデータ、メディアおよびカテゴリを埋めるために、静的なメソッドを持っています(結合されたSQL問合せから、遅延ロードは3つの問合せを再キューするため)。しかし、実際には非常に一般的な場合もありますが、ニュースオブジェクトの横にある特定のビューまたは集計のために追加のパラメータが必要になることがあります。このパラメータを取得するには、新しいSQLクエリを使用します。同時に、このパラメータを含むニュースオブジェクトを取得するために、もう少し複雑なクエリを使用することができたことはわかっています。

私の質問には基本的には次のようなものがあります:アイテムの行としてデータを取得し、それを後のケースで渡すか、またはこのビューでのみ必要な、追加されたパラメータの特別な読み込みと処理表示専用です。

答えて

0

状況によりますかと思います。ときには、元のクエリと一緒に入手するのが便利な場合もあります。特に価値がない場合があります(特に、データがキャッシュ可能な場合)。

私のアプリケーションでは、並べ替えを使用しています - 私たちはジョインを使って行ごとに複数のオブジェクトを生成し、複数のクエリを実行して他のものを取り戻します。しかし、すべてがmemcacheを介してキャッシュされているので、すべてが単純で素早い限り、クエリが多すぎることを心配しているわけではありません。

次に、ニュースリストのリストのような行のリストをビュー(実際にはdb_table_rowset)に渡します。他のクエリでは、個々の行(db_table_row objs)を渡します。それからもちろん、他のヴァルが見えます。次に、ビューは行(モデル)を正しく使用する作業を行います。

関連する問題