php依赖注入-PHP依赖注入(完整代码)

2023-08-26 0 604 百度已收录

总结: 依赖注入传统思维应用程序使用类将创建类并调用类的技术。 这样你就可以完全控制依赖关系,并通过调整不同的注入对象来控制程序的行为。 如果使用了类,可以直接使用,无需更改类代码。

依赖注入

传统思维方式

应用程序用到一个Foo类,就会创建Foo类并调用Foo类的方法。
假如这个方法内需要一个Bar类,就会创建Bar类并调用Bar类的方法。
而这个方法内需要一个Bim类,就会创建Bim类,接着做些其它工作。

/**
*  Foo
*/
class Foo 
{
    public function doSomething($value="")
    {
        # code...
        $Bar = new Bar();
        $Bar->doSomething();
        echo "Foo doSomething","
" ; } } /** * Bar */ class Bar { public function doSomething($value="") { # code... $Bim = new Bim(); $Bim->doSomething(); echo "Bar doSomething","
" ; } } /** * Bim */ class Bim { public function doSomething($value="") { # code... echo "Bim doSomething","
" ; } } $doSomething = new Foo(); $doSomething->doSomething();

依赖注入

应用程序使用Foo类,而Foo类需要Bar类php依赖注入

php依赖注入-PHP依赖注入(完整代码)

Bar类需要Bim类,所以首先创建Bim类,然后创建Bar类并注入Bim,然后创建Foo类,并注入Bar类,

然后调用Foo方法,Foo调用Bar方法,然后做一些其他的工作。

/**
* Bim2
*/
class Bim2 
{
    
    public function doSomething($value="")
    {
        # code...
        echo "Bim2 doSomething","
" ; } } /** * 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","
"; } } /** * 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","
"; } } $doSomething2 = new Foo2(new Bar2(new Bim2())); $doSomething2->doSomething();

这就是控制反转模式。 依赖关系的控制反转进入调用链的开头。 这样你就可以完全控制依赖关系,并通过调整不同的注入对象来控制程序的行为。

例如,如果Foo类使用memcache,则无需更改Foo类的代码即可切换到redis。

使用依赖注入容器后的思路是应用程序需要获取Foo类,因此从容器中获取Foo类,容器创建Bim类,然后创建Bar类并注入Bim,然后创建Foo类php依赖注入,并注入Bar,应用程序调用Foo方法,Foo调用Bar方法,然后做一些其他工作。

扩展:容器负责实例化、依赖注入和依赖处理。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php依赖注入-PHP依赖注入(完整代码) https://www.wkzy.net/game/156467.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务