这与 DI 的关系与 Zend 框架的关系一样多。我的问题是关于在哪里使用 DI 容器。是否应该只在引导过程中使用它来初始化,而让应用程序的其余部分不知道存在?或者,如果需要,将其传递给控制器、模型、助手等以供在那里使用是一种好习惯吗?Zend 2 呢?
问问题
1295 次
2 回答
5
由于它通常与依赖注入有关,因此如果您尝试编写 SOLID 代码,则应该练习这一点。我写了两篇关于依赖注入主题的文章,因为它涉及开发人员在直接进入使用 DiC 的代码之前应该具备的背景知识(我认为):
http://ralphschindler.com/2011/05/18/learning-about-dependency-injection-and-php
我还编译了一些关于如何使用 Zend\Di 的示例,它是 ZF2 代码库中的一个 DiC 组件:
https://github.com/ralphschindler/Zend_DI-Examples/
还有一点,我想说明...一旦您开始将 DiC 作为依赖项传递到控制器、模型等中...您的 DiC 实际上此时就成为了服务定位器。这是完全可以接受的,但您需要事先了解使用服务定位器将/应该成为您设计目标的一部分。
ZF2 的下一个 beta 周期可能会更好地解决如何通过模块、控制器使用 Di 和服务定位器,以及如何将依赖项推送到帮助程序和模型等事物中。所以请注意这一点。
希望这能让你开始。
于 2012-03-19T21:15:05.917 回答