美文网首页
如何理解php的依赖注入

如何理解php的依赖注入

作者: zhaoxiaohui520 | 来源:发表于2020-04-29 22:21 被阅读0次

传统的思路是应用程序用到一个A类,就会创建A类并调用A类的方法,假如这个方法内需要一个B类,就会创建B类并调用B类的方法,而这个方法内需要一个C类,就会创建C类,接着做些其它工作。

<?php
class C
{
    public function doSomething()
    {
        echo __METHOD__, '我是C类|';
    }
}

class B
{
    public function doSomething()
    {
        $bim = new C();
        $bim->doSomething();
        echo __METHOD__, '我是B类|';
    }
}

class A
{
    public function doSomething()
    {
        $bar = new B();
        $bar->doSomething();
        echo __METHOD__, '我是A类|';;
    }
}

$class = new A();
$class->doSomething(); //C::doSomething我是C类|B::doSomething我是B类|A::doSomething我是A类|

使用依赖注入的思路是应用程序用到A类,A类需要B类,B类需要C类,那么先创建C类,再创建B类并把C注入,再创建A类,并把B类注入,再调用A方法,A调用B方法,接着做些其它工作。

<?php

class C
{
    public function doSomething()
    {
        echo __METHOD__, '我是C类|';
    }
}

class B
{
    private $c;

    public function __construct(C $c)
    {
        $this->c = $c;
    }

    public function doSomething()
    {
        $this->c->doSomething();
        echo __METHOD__, '我是B类|';
    }
}
class A
{
    private $b;

    public function __construct(B $b)
    {
        $this->b = $b;
    }

    public function doSomething()
    {
        $this->b->doSomething();
        echo __METHOD__, '我是A类|';;
    }
}

$class = new A(new B(new C()));
$class->doSomething(); // C::doSomething我是C类|B::doSomething我是B类|A::doSomething我是A类|

这就是控制反转模式。依赖关系的控制反转到调用链的起点。这样你可以完全控制依赖关系,通过调整不同的注入对象,来控制程序的行为。例如A类用到了memcache,可以在不修改A类代码的情况下,改用redis。

使用依赖注入容器后的思路是应用程序需要到A类,就从容器内取得A类,容器创建C类,再创建B类并把C注入,再创建A类,并把B注入,应用程序调用A方法,A调用B方法,接着做些其它工作.

总之容器负责实例化,注入依赖,处理依赖关系等工作。其实依赖注入不难理解哦。

无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。

相关文章

  • 如何理解php的依赖注入

    传统的思路是应用程序用到一个A类,就会创建A类并调用A类的方法,假如这个方法内需要一个B类,就会创建B类并调用B类...

  • php 依赖注入的理解

    PHP 依赖注入容器实现 w3c-PHP7中Closure :: call使用示例 php手册-Closure::...

  • PHP依赖注入思路理解

    前言:依赖注入看起来很高大上,是一个很神秘的家伙,或许是自己没有理解,所以在某度上看的一些教程,让自己更加的懵,因...

  • 依赖注入

    依赖注入(DI)在PHP中的实现 什么是依赖注入? IOC:英文全称:Inversion of Control,中...

  • 快速了解PHP中的(DI)依赖注入(转载)

    什么是依赖注入?本篇文章带大家了解一下PHP中的依赖注入,介绍一下依赖注入出现的原因、依赖注入的应用,希望对大家有...

  • IOC 控制反转

    以下内容只是我个人理解 依赖注入和ioc 是什么关系? 依赖注入是控制反转(ioc)的一种实现方式 如何理解控制反...

  • Dagger2常用注解诠释

    依赖注入 控制反转(IoC)与依赖注入(DI)浅谈依赖注入理解依赖注入(IOC)和学习Unity Gradle配置...

  • PHP 依赖注入

    说这个话题之前先讲一个比较高端的思想--'依赖倒置原则' "依赖倒置是一种软件设计思想,在传统软件中,上层代码依赖...

  • 依赖注入实现邮件发布

    依赖注入 1.目录树 /Di/--comment.php/--EmailSenderInterface.php/-...

  • PHP的依赖注入

    闲来无事,今天兴致来了 ,看了看依赖注入,写了以下一段代码,不知道算不算依赖注入,自我感觉挺方便的,但是又说不上来...

网友评论

      本文标题:如何理解php的依赖注入

      本文链接:https://www.haomeiwen.com/subject/glpowhtx.html