Day: 2021年2月23日

PHP依赖注入原理与用法分析

这篇文章主要介绍了PHP依赖注入原理与用法,简单讲述了依赖注入的概念、原理并结合实例形式分析了php实现与使用依赖注入的相关操作技巧,需要的朋友可以参考下
java

本文实例讲述了PHP依赖注入原理与用法。分享给大家供大家参考,具体如下:

引言

依然是来自到喜啦的一道面试题,你知道什么是依赖注入吗?

依赖注入(DI)的概念虽然听起来很深奥,但是如果你用过一些新兴的php框架的话,对于DI一定不陌生,因为它们多多少少都用到了依赖注入来处理类与类之间的依赖关系。

php中传递依赖关系的三种方案

其实要理解DI,首先要明白在php中如何传递依赖关系。

第一种方案,也是最不可取的方案,就是在A类中直接用new关键词来创建一个B类,如下代码所示:

1
2
3
4
5
6
7
8
<?php
class A
{
  public function __construct()
  {
    $b = new B();
  }
}

为什么这种方案不可取呢?因为这样的话,A与B就耦合在了一起,也就是说A类无法脱离B类工作。

第二种方案就是在A类的方法中传入需要的B类,如下代码所示:

1
2
3
4
5
6
7
<?php

依赖注入的三种方式_PHP的依赖注入(DI)

PHP当中的依赖注入和控制反转是面试中经常问到的问题。同时,很多框架中也使用到了这种设计模式,可能有很多小伙伴们对这两个概念认识比较模糊,下面我就来给大家讲讲什么是依赖注入。

633cec74f8fe3a4d93f76f1bf4ba644f.png

依赖注入

概念:是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。

说明:要想理解DI(依赖注入),首先要明白在PHP中是如何传递依赖关系的。

PHP中传递依赖关系的三种方式:

①在A类中直接new一个B类,代码如下:

<?php //声明一个类B    class B{        //声明一个测试方法        public function test(){            //返回一个测试话术            return '这是一个测试方法';        }    }    //声明一个类A(假设A类想实现某个功能,要依赖B类来实现)    class A{        //声明一个测试方法        public function toTest(){            //声明一个B类的对象            $bObj = new B();            //调用B类的方法            var_dump($bObj->test());        }    }    //创建一个A类的对象    $obj =