控制反转(inversion of control,缩写为ioc),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(dependency injection,简称di)。
通过配置改变依赖接口的实现,这也是依赖注入最基本和最核心的功能
灵活控制依赖实现的实例范围,单例、每个线程一个、每个请求一个等等
依赖的参数,依赖的依赖等管理
立即学习“PHP免费学习笔记(深入)”;
代码更加简洁、逻辑更加清楚
Mock方便测试方便(推荐学习:PHP编程从入门到精通)
总的来说就是把应用中的功能块与功能块之间,类与类之间的依赖关系通过一个统一的框架集中管理起来
一个简单的依赖注入的例子
请看如下代码:
s[$k]=$c; } function __get($k) { return $this->s[$k]($this); }}
登录后复制
有了container类之后我们可以怎样管理A与B之间的依赖关系呢,用代码说话吧:
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依赖注入有什么用的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2155550.html