私は、依存性注入、制御の反転、および IoC コンテナーについて多くのことを調べてきました。また、主に動的言語 (職場では PHP、家庭では Python) でプログラミングしています。ここに私が見つけたものがありますが、すべてをつなぎ合わせると、埋めなければならない多くのギャップが残ります。
だから私が読んでいるのは、動的言語でDIを実行する方がはるかに簡単であるため、静的言語ではIoCコンテナーがはるかに大きな取引であるということです。しかし、DI をはるかに超えた利点も提供します。たとえば、依存関係を管理したり、多数のオブジェクトを手作業でつなぎ合わせる必要がなくなるなどです。ついでに言うと、これらは複雑なので、自分でやろうとしないでください (ただし、PHP には適切なものはありません)。
この情報は私をちょっと…行き詰まらせているように感じます。どうすればいいですか?私は非常に複雑な依存関係を持つ非常に大規模なコードベースで作業しています (おそらくリファクタリングが強く必要ですが、それは別の問題です)。これまで DI の実装は非常にうまくいっていませんでしたが、私は本当に正しい方向に向かわせようとしています。動的言語と IoC (または少なくとも IoC コンテナー) に関しては何もないようです。
当分の間、依存関係を「手でつなぐ」方が良いでしょうか。原則をより適切に処理した後、後でコンテナーで自動化することを心配しますか? 独自の単純な IOC コンテナーを実装する価値はありますか? それとも、最終的に PHP のコストに見合うだけのメリットが得られないのでしょうか?