わかりましたので、依存性注入コンテナーと、次のように注文を取得するために使用する DAO があります。
$container = new DIContainer();
$orderDAO = $container->get('orderDAO');
$order = $orderDAO->fetchById($someId);
そして、使いやすい注文オブジェクトがあります。
問題は、$order
オブジェクトが に依存している場合Logger
、Config
およびそのようなオブジェクトが 1 つまたは 2 つある場合です。$orderDAO
オブジェクトをインスタンス化すると、それらの追加のオブジェクトにアクセスしたり作成したりする必要がなくなり、$orderDAO
オブジェクトがこれらの追加オブジェクトについて何も知らないはずです。特に、それらを作成する方法を知っている必要はありません。
インスタンス化されているときに (DIC 内から) 依存性注入コンテナーを DAO に注入できることはわかっています。そうすれば、オブジェクトが DAO 内から持っている依存関係にアクセスできますが、そのようにすることについて何かがうまくいきません。なんらかの理由で私には正しいと感じており、メソッドが窓の外にあるように、どこでも静的呼び出しを行いたくありません。
これを行う最善の方法は何ですか?
どんな助けでも大歓迎です。