PHP中依赖注入容器的直接示例


Straight forward example of Dependency Injection Container in PHP

有人能为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全局的安全替代方案(良好编码实践)),但我认为这更像是一种懒惰的初始化模式。但你要求的东西要简单得多,所以这可能是有用的。