欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php依赖注入有什么用

程序员文章站 2022-03-08 08:57:22
...
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。

php依赖注入有什么用

通过配置改变依赖接口的实现,这也是依赖注入最基本和最核心的功能

灵活控制依赖实现的实例范围,单例、每个线程一个、每个请求一个等等

依赖的参数,依赖的依赖等管理

代码更加简洁、逻辑更加清楚

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依赖注入有什么用的详细内容,更多请关注其它相关文章!

相关标签: php