作家
登录

PHP如何实现依赖注入

作者: 来源: 2017-08-16 17:03:23 阅读 我要评论

【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索


PHP若何实现依附注入

摘要: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特点。控制反转(IOC)是一种思惟,依附注入(DI)是实施这种思惟的办法。

高层模块不该该依附于底层模块,两个都应当依附抽象。

抽象不该该依附于细节,细节应当依附于抽象。

起首,我们来看一段代码:

初始,我们都应用new 的方法在内部进行,EchoT类严重依附于类A。每当类A变更时,EchoT类也得进行变更。

这个时刻,会出现一个问题:

我们优化一下代码

  1. class EchoT { 
  2.         protected  $t; 
  3.         public function __construct($t)  //构造器注入由构造器注入到个中 
  4.         { 
  5.               $this->t = $t; 
  6.         }  

可以看到,如许做的话。很大年夜法度榜样上,我们对法度榜样进行懂灯揭捉?。类A无论你若何更改,EchoT类是不须要更改的。不再依附于A。然则新问题又来了,我们如今只有A,万一来了B,来了CDEFG怎么办。

面向接口

  1. interface T{ 
  2.         public function echo(); 
  3.  
  4. class A{ 
  5.         public function echo() 
  6.         { 
  7.                 echo 'A'.PHP_EOL; 
  8.         } 
  9.  
  10. class B implements T{ 
  11.         public function echo() 
  12.         { 
  13.                 echo 'B'.PHP_EOL; 
  14.         } 
  15. class EchoT { 
  16.         protected  $t; 
  17.         public function __construct(T $t)  //构造器注入由构造器注入到个中 
  18.         { 
  19.               $this->t = $t; 
  20.         } 
  21.         public function echo(){ 
  22.                 $this->t->echo(); 
  23.         } 
  24.  

工厂

  1. function getT($str) { 
  2.     if(class_exists($str)){ 
     1/7    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      在命令行中将CentOS 7与Samba4 AD集成

    【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 本指南将向你介绍若何应用 Authconfig 在敕令行中将无图形界面的 CentOS 7 办事器集成到 Samba4 AD 域控制>>>详细阅读


    本文标题:PHP如何实现依赖注入

    地址:http://www.17bianji.com/lsqh/36755.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)