通过配置改变依赖接口的实现,这也是依赖注入最基本和最核心的功能
灵活控制依赖实现的实例范围,单例、每个线程一个、每个请求一个等等
依赖的参数,依赖的依赖等管理
代码更加简洁、逻辑更加清楚
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中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
- 上一篇:php异常处理和错误处理区别
- 下一篇:php一共有多少函数
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论1 条评论为啥你们网站得文章不写原文地址,标注来源,明明是白嫖的,但是不知道的都以为是你们自己写的