我已经阅读了很多关于依赖注入、控制反转和 IoC 容器的内容。我还主要使用动态语言(工作中的 PHP,家庭中的 Python)进行编程。这是我正在寻找的东西,但是当我把它们拼凑在一起时,这给我留下了很多空白:
所以我正在阅读的是:IoC 容器在静态语言中的作用要大得多,因为在动态语言中执行 DI 要容易得多。但它们也提供了远远超出 DI 的好处,例如为您管理依赖项并让您不必手动将十几个对象串在一起。而且,顺便说一句,它们很复杂,所以不要尝试自己做(但对于 PHP 来说没有好的方法)。
我觉得这些信息让我有点……卡住了。我该怎么办?我在一个非常大的代码库中工作,具有非常复杂的依赖关系(并且可能强烈需要重构,但这是另一个并行问题)。到目前为止,我们在实施 DI 方面做得很差,我真的在努力让我们朝着正确的方向前进。在动态语言和 IoC(或至少 IoC 容器)方面似乎一无所有。
我是否最好暂时将依赖项“手动串起来”,然后在我更好地处理原则之后担心以后在容器中自动化它?是否值得实现我自己的简单 IoC 容器?还是说这些好处最终不值得在 PHP 中付出代价?