• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php依赖注入有什么用

php 搞代码 4年前 (2022-01-04) 31次浏览 已收录 0个评论

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

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

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

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

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

Mock方便测试方便(推荐学习:PHP编程从入门到精通)

总的来说就是把应用中的功能块与功能块之间,类与类之间的依赖关系通过一个统一的框架集中管理起来

一个简单的依赖注入的例子

请看如下代码:

<?phpclass Container { private $s=array(); function __set($k, $c) { $this->s[$k]=$c; } function __get($k) { return $this->s[$k]($this); }}

有了container类之后我们可以怎样管理A与B之间的依赖关系呢,用代码说话吧:

<?phpclass A{  private $container;  public function __construct(Container $container)  {    $<a style="color:transparent">来源gao($daima.com搞@代@#码网</a>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依赖注入有什么用的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php依赖注入有什么用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址