• 技术文章 >后端开发 >PHP问题

    php依赖注入有什么用

    (*-*)浩(*-*)浩2019-09-16 10:32:32原创1794
    控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。

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

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

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

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

    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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php异常处理和错误处理区别 下一篇:php一共有多少函数
    PHP编程就业班

    相关文章推荐

    • thinkphp钩子是什么意思• thinkphp控制器如何继承类• tomcat可以运行php吗• upupw php探针什么用

    全部评论我要评论

  • - XIONG

    为啥你们网站得文章不写原文地址,标注来源,明明是白嫖的,但是不知道的都以为是你们自己写的

    2021-01-10

  • 取消发布评论发送
  • 1/1

    PHP中文网