首页 >后端开发 >PHP问题 > 正文

php依赖注入有什么用

原创2019-09-16 10:32:3211896
控制反转(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中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论条评论
    - XIONG
  • - XIONG· 2021-01-10 04:07:171楼
  • 为啥你们网站得文章不写原文地址,标注来源,明明是白嫖的,但是不知道的都以为是你们自己写的

  • 专题推荐

    作者信息
    推荐视频教程
  • ThinkPHP5基础视频教程ThinkPHP5基础视频教程
  • PHP技术小知识每日分享(精品)PHP技术小知识每日分享(精品)
  • PHP开发编码规范PHP开发编码规范
  • 行业大牛 ,细说PHP作者,现身PHP中文网直播送书300本,PHP中文网学员超级福利!行业大牛 ,细说PHP作者,现身PHP中文网直播送书300本,PHP中文网学员超级福利!
  • 视频教程分类