这个问题并不是要引发关于什么是“最好”的 DI 框架的争论(我认为没有一个明确的通用解决方案),而是为了讨论不同类型项目的良好替代方案,无论使用哪种编程语言,基于关于专业经验。
我想了解的一些问题:
- 您在 DI 框架中寻找的最重要的功能是什么?为什么它最适合您的项目?
- DI 框架有什么其他框架没有的?它有何特别之处?
- 为什么您不为其他不同的项目选择相同的 DI 框架?
- DI 框架如何提高应用程序的可测试性和配置灵活性(尤其是在不同环境下:开发、登台、生产等)?
- 许多 DI 框架都被认为很简单。但是维护依赖项的配置有多容易呢? (例如:是否太冗长或难以阅读和修改?)
我最终可能会接受一个答案,但这个主题没有“最佳答案”。如果有人能分享有用的经验,我将不胜感激。
我对 Python 和 PHP 中的 DI 框架的经验特别感兴趣,我认为选择并不是很直接。不过,这个问题与语言无关。
最佳答案
我通常使用以下标准选择框架,无论是 DI 还是其他框架:
- 选择一个具有手头工作所需功能的框架
- 更喜欢简单的框架 - 1. 不需要的“额外”东西越少越好。
- 优先选择“内置”框架,而不是您已经使用的语言/框架。
- 更喜欢我已经了解并使用过的框架
通常,通过上述操作,结果就很明显了。例如,我最后选择的 DI 框架是 MEF,主要是因为它是一个 C# 项目(第 3 点),它很简单,而且它做了我需要它做的事情。
关于php - 控制反转 : Have you ever had to decide what Dependency Injection framework is best for a project? 您选择了哪一个,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738980/