经由过程设置转变依靠接口的完成,这也是依靠注入最基本和最中心的功用
天真掌握依靠完成的实例局限,单例、每一个线程一个、每一个要求一个等等
依靠的参数,依靠的依靠等治理
代码越发简约、逻辑越发清晰
Mock轻易测试轻易(引荐进修:PHP编程从入门到通晓)
总的来说就是把运用中的功用块与功用块之间,类与类之间的依靠关联经由过程一个一致的框架集合治理起来
一个简朴的依靠注入的例子
请看以下代码:
<?php class Container { private $s=array(); function __set($k, $c) { $this->s[$k]=$c; } function __get($k) { return $this->s[$k]($this); } }
有了container类以后我们能够如何治理A与B之间的依靠关联呢,用代码措辞吧:
<?php class A { private $container; public function __construct(Container $container) { $this->container = $container; } public function doSomeThing() { //do something which needs class B $b = $this->container->getB(); //to do } }
再将B类注入到容器类中:
$c = new Container(); $c->setB(new B());
还能够传入一个匿名函数,如许B类就不会在传入时就马上实例化,而是在真正调用时才完成实例化的事情:
$c = new Container(); $c->setB(function (){ return new B(); });
以上就是php依靠注入有什么用的细致内容,更多请关注ki4网别的相干文章!