Blog Details

浅谈PHP若何实现依赖注入(一)
by weswoo

shopify独立站

Planning your online business goals with a specials

Kristin Weswoo

Aug 30, 2023

 依赖注入(Dependency Injection,简称DI)又称控制反转(Inversion of Control,简称IOC),在现在的主流框架中,如ThinkPHP、Laravel等都有实现。什么是依赖注入呢?今天就让小编为人人解说一下依赖注入的相关知识吧。

  举个简朴的例子:
  (1)原始社会里,险些没有社会分工。需要斧子的人(挪用者)只能自己去磨一把斧子(被挪用者)。   (2)进入工业社会,工厂泛起。斧子不再由通俗人完成,而在工厂里被生产出来,此时需要斧子的人(挪用者)找到工厂,购置斧子,无须体贴斧子的制造历程。   (3)进入“按需分配”社会,需要斧子的人不需要找到工厂,坐在家里发出一个简朴指令:需要斧子。斧子就自然泛起在他眼前。   第一种情形下,实例的挪用者确立被挪用的实例,一定要求被挪用的类泛起在挪用者的代码里。无法实现二者之间的松耦合。   第二种情形下,挪用者无须体贴被挪用者详细实现历程,只需要找到相符某种尺度(接口)的实例,即可使用。此时挪用的代码面向接口编程,可以让挪用者和被挪用者解耦,这也是工厂模式大量使用的缘故原由。但挪用者需要自己定位工厂,挪用者与特定工厂耦合在一起。   第三种情形下,挪用者无须自己定位工厂,程序运行到需要被挪用者时,依赖注入容器自动提供被挪用者实例。事实上,挪用者和被挪用者都处于依赖注入容器的治理下,二者之间的依赖关系由依赖注入容器提供。因此挪用者与被挪用者的耦合度进一步降低,这使得应用加倍容易维护,这就是依赖注入所要到达的目的。   在PHP中若何实现依赖注入呢?   依赖注入在现在的编程中,有着对照突出的优势,这也是ThinkPHP、Laravel等框架,使用此编程头脑的缘故原由。那么这些框架到底是若何使用PHP去实现的呢?   下面我们使用一个简朴的案例,来说说其中的隐秘。   首先我们确立一个类,看起来是这样的,包罗一个属性和两个方:   假设我们现在有另外两个类,redisDB和cache,redisDB提供一个redis数据库的操作,cache认真缓存功效的实现而且依赖于redisDB。在上面这个类中我们简质朴现了redis的查询、保留和删除。另一个类和当前这个类结构很像:  

无服务器是如何改变云计算的

Random Image 608
Random Image 608

Manage your online banking

Morbi lorem proin morbi tempor risus. Nisl lobortis diam id faucibus pretium vitae suspendisse sed accumsan. Sodales morbi tristique elit cursus gravida. Ullamcorper commodo eget pulvinar pretium. Condimentum rhoncus commodo amet nec auctor nibh vel mi blandit.

Neque ultrices nunc condimentum morbi risus tincidunt. Vel arcu lacus non ornare. Porttitor in rhoncus magna augue adipiscing.

  • Manage your time so you’ll get more done in less time
  • Cut expenses without sacrificing quality
  • Attract and retain quality, high-paying customers

开始您的独立站品牌出海

独立站品牌从0到1的步骤:产品开发 - VI定调 - 网站定制 - 运营自动化 - 客户维护

  • 12小时技术团队支持

  • 全方位品牌出海护航