在Zend/Zend 2中使用依赖注入容器的位置

oro*_*edd 1 dependency-injection zend-framework zend-framework2

这与DI和Zend框架有关.我的问题是在哪里使用DI容器.是否应该只使用durring bootstrap进行初始化,让应用程序的其余部分不知道存在?或者,如果需要,将它传递给控制器​​,模型,帮助器等是否是好的做法?Zend 2怎么样?

小智 5

因为它通常涉及依赖注入,如果您尝试编写SOLID代码,那么您应该练习这一点.我有两篇关于依赖注入主题的文章,因为它涉及到开发人员在直接跳转到使用DiC的代码之前应该具备的背景知识:

http://ralphschindler.com/2011/05/18/learning-about-dependency-injection-and-php

我还编写了一些如何在ZF2代码库中使用Zend\Di作为DiC组件的示例:

https://github.com/ralphschindler/Zend_DI-Examples/

另一点,我想制作......一旦你开始将DiC作为依赖项传递给控制器​​,模型等......你的DiC实际上就变成了服务定位器.这是完全可以接受的,但您需要事先了解使用服务定位器将/应该成为您设计目标的一部分.

ZF2的下一个beta周期可能更好地解决Di和服务定位器如何通过模块,控制器以及如何将依赖关系推送到辅助工具和模型之类的东西.所以请留意这一点.

希望能让你开始.