有人能为PHP中的依赖注入容器(DIC)提供一个基本的工作示例吗?
我知道这是一个模糊的问题,我已经看过一些例子,特别是Fabian Potencier的例子,他用一个工作例子很好地解释了PHP中的DI。
除了Fabian,我还阅读了一些文章,但我正在寻找DIC的工作示例,这样像我这样的人就会通过一个简单的工作示例更好地理解。
也许是一个小的解释为什么我们需要使用DIC也会很有帮助,比如在什么情况下它会派上用场等等
感谢
我不知道你是否读过那篇文章:
http://richardmiller.co.uk/2011/07/07/dependency-injection-moving-from-basics-to-container/
但它帮助我理解了DI 的优势
Richard Miller还就为什么要使用DI做了一个很好的演示:
https://speakerdeck.com/u/richardmiller/p/dependency-injection-and-the-symfony2-service-container
它只给出了一些伪代码示例,但您肯定会认识到一些现实世界中的问题。
如果你到目前为止还没有读过这篇文章,我强烈建议你:
- 控制容器的反转和依赖注入模式
它不太长,但也不太短。根据Container,它谈到了PicoContainer,它最初是用Java编写的。它存在一个PHP变体:
- http://svn.picocontainer.codehaus.org/browse/picocontainer/php/picocontainer/trunk/container
PicoContainer特有的文档为:
- http://docs.codehaus.org/display/PICO/Home
- 在这里:http://picocontainer.codehaus.org/
我在其他答案中描述了一个非常初级的PHP服务定位器(PHP全局的安全替代方案(良好编码实践)),但我认为这更像是一种懒惰的初始化模式。但你要求的东西要简单得多,所以这可能是有用的。