旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

PHP依靠注入的细致引见(附示例)【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:89


导读:本篇文章给人人带来的内容是关于PHP依靠注入的细致引见(附示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。依靠注入传统的思绪应用程序用到一个Foo...

本篇文章给人人带来的内容是关于PHP依靠注入的细致引见(附示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

依靠注入

传统的思绪

应用程序用到一个Foo类,就会建立Foo类并挪用Foo类的要领。
如果这个要领内须要一个Bar类,就会建立Bar类并挪用Bar类的要领。
而这个要领内须要一个Bim类,就会建立Bim类,接着做些别的事情。

/**
*  Foo
*/
class Foo 
{

    public function doSomething($value='')
    {
        # code...
        $Bar = new Bar();
        $Bar->doSomething();
        echo 'Foo doSomething','<br />' ;
    }
}

/**
*  Bar
*/
class Bar 
{
    

    public function doSomething($value='')
    {
        # code...
        $Bim = new Bim();
        $Bim->doSomething();
        echo 'Bar doSomething','<br />' ;
    }
}

/**
* Bim
*/
class Bim
{
    

    public function doSomething($value='')
    {
        # code...
        echo 'Bim doSomething','<br />'  ;
    }
}

$doSomething = new Foo();
$doSomething->doSomething();

依靠注入

应用程序用到Foo类,Foo类须要Bar类,
Bar类须要Bim类,那末先建立Bim类,再建立Bar类并把Bim注入,再建立Foo类,并把Bar类注入,
再挪用Foo要领,Foo挪用Bar要领,接着做些别的事情。

/**
* Bim2
*/
class Bim2 
{
    
    public function doSomething($value='')
    {
        # code...
        echo 'Bim2 doSomething','<br />' ;
    }

}

/**
*  Bar2
*/
class Bar2
{

    private $bim2 ;

    public function __construct(Bim2 $bim2)
    {
        # code...
        $this->bim2 = $bim2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bim2->doSomething();
        echo "Bar2 doSomething",'<br />';
    }
}

/**
* Foo
*/
class Foo2
{
    
    private $bar2 ;
    public function __construct(Bar2 $bar2)
    {
        # code...
        $this->bar2 = $bar2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bar2->doSomething();
        echo "Foo2 doSomething",'<br />';
    }
}

$doSomething2 = new Foo2(new Bar2(new Bim2()));
$doSomething2->doSomething();

这就是掌握反转形式。依靠关联的掌握反转到挪用链的出发点。如许你能够完整掌握依靠关联,经由过程调解差别的注入对象,来掌握程序的行动。
比方Foo类用到了memcache,能够在不修正Foo类代码的情况下,改用redis。
运用依靠注入容器后的思绪是应用程序须要到Foo类,就从容器内获得Foo类,容器建立Bim类,再建立Bar类并把Bim注入,再建立Foo类,并把Bar注入,应用程序挪用Foo要领,Foo挪用Bar要领,接着做些别的事情.

扩大:容器担任实例化,注入依靠,处置惩罚依靠关联等事情。

以上就是PHP依靠注入的细致引见(附示例)的细致内容,更多请关注ki4网别的相干文章!

标签:php