だから私の問題は、DIコンテナである程度達成したクラスを分離したいということです。私が今抱えている唯一の問題は、他のクラスをインスタンス化するクラスを扱うことです。たとえば、データベースにクエリを実行した後、フェッチされた行の ORMModel インスタンスを返す next() メソッドを持つ ORMResult のインスタンスを取得します。
ORMResult と ORMModel を分離するにはどうすればよいでしょうか。1) 私の最初のアイデアは、DI コンテナーを依存関係として ORMResult に渡し、モデルの生成に使用できるようにすることでした。しかし、このようにして ORMResult をコンテナと結合しています。
2) もう 1 つのオプションは、ORMResult に渡すことができる ORMModelBuilder クラスを持つことですが、そのようなクラスがかなりあるので、それぞれのビルダーを作成するのは非常に無駄になる可能性があります。
3) ORMModel をパラメーターとして構築する特定の関数を ORMResult に渡すことができます (PHP では関数を引数として渡すことができます)。これは今のところ最良のアイデアのように思えます。
これを行うより良い方法はありますか?