2012-01-10 11 views
2

私はDependency Injection Containerなどが新しくなっています。依存性注入コンテナを使って遅延ロードする方法は?

私が持っているのは、コンテナでビルドしたいUserオブジェクトです。私の場合、ユーザーは、彼/彼女に関連付けられたたくさんのCommentオブジェクトを持っているかもしれませんが、私は毎回の要求でそれらを必要としません。

前に、私はUserモデルを作成してコメントモデル自体をロードしていたでしょうが、それは悪い習慣であることを認識しています。

ユーザーの作成時にすべてのコメントを読み込みたくない場合(コメントを遅くロードしたい場合など)、DIとDICでどのように達成できますか?

注: 解決方法はありますが、どのように動作するか理解するまで使用したくありません。これは基本を学ぶための理論上の質問です。そして、私は確かに確立された枠組みに切り替えるでしょう。

答えて

4

モデルの依存関係をロードすることは、Dependency Injectionコンテナの責任ではないと思います。これは、ORM、データアクセスオブジェクト、またはアプリケーションサービスの仕事です。 DIコンテナは、ORM、DAO、またはサービスクラスの設定とインスタンス化を行います。

+0

私の無知を憎んではいけませんが、私は依存性注入コンテナの仕事は、実際には、依存関係を必要とするオブジェクトに注入することだと思いました。私はこれが私が混乱しているところだと思っています... – johnnietheblack

+0

それは本当ですが、DIコンテナは通常、幾分静的です(XMLまたはPHPファイル経由の再設定)。自然にデータベースから情報を動的に取り出すことができるコンテナについてはわかりません。アプリケーションロジックは、DIコンテナではなくアプリケーションにとどまるべきです。 – Daff

+0

応答のためにありがとう - フレームワークオブジェクトの構築にもっと興味がありますか?例えば、コントローラ、ロガーなど?そして、ビジネスロジックは、オームによってもっとビルドされていますか? – johnnietheblack

関連する問題