1. 程式人生 > >理解php中的依賴注入

理解php中的依賴注入

<?php

class Test1 {
    function say() {
        echo 'hello <br>';
    }
}


class Test2 {
    function connect() {
        $test1 = new Test1();
        $test1 -> say();
        echo 'connect函式執行 <br>' ;
    }	
}

$test2 = new Test2();
$test2 -> connect();
?>

通常一個類使用另外一個類的方法就是這麼寫的。

改成依賴注入的方式。

在例項化Test2的時候,直接將Test1的例項化,傳過去。

Test2不再主動例項化Test1類,而且想注入誰都行,不限於Test1類了。

好處:減少了類之間的耦合度。

<?php

class Test1 {
    public function say() {
        echo 'hello <br>';
    }
}


class Test2 {
    public $test1;
    function __construct($test1) {
        $this -> test1 = $test1;
    }
    
    function connect() {
        $this -> test1 -> say();
        echo 'connect函式執行 <br>' ;
    }	
}

$test1 = new Test1();
$test2 = new Test2($test1);
$test2 -> connect();