PHP实现依赖注入
Posted php开发案例
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP实现依赖注入相关的知识,希望对你有一定的参考价值。
###首先,我们来看一段代码:
初始,我们都使用new 的方式在内部进行,EchoT类严重依赖于类A。每当类A变化时,EchoT类也得进行变化。 ###我们优化一下代码
可以看到,这样做的话。很大程序上,我们对程序进行了解耦。类A无论你如何变动,EchoT类是不需要变动的。不再依赖于A。但是新问题又来了,我们现在只有A,万一来了B,来了CDEFG怎么办。 ###面向接口
将T抽象出为接口,这样,EchoT类中的echo方法变成一个抽象的方法,不到运行那一刻,不知道他们的Method方式是怎么实现的。 ###工厂
T要使用哪个是不明确的,因此,我们可以将其工厂化。【看上去很简单,在DI实际上有体现】
###DI(重点来了) 首先,我们看一下php的psr规范。
http://www.php-fig.org/psr/psr-11/
官方定义的接口
仔细看上面的工厂,是不是和get($id)很一致,PHP官方将其定义为容器(Container,我个人理解,就是一个复杂的工厂)
dependency injection container
依赖注入容器
####使用示例
这个时候,会出现一个问题:
####针对接口 下面是alias方法
就此,一个简单的PHP容器就实现了。 ###个人实现代码
以上是关于PHP实现依赖注入的主要内容,如果未能解决你的问题,请参考以下文章