理解php中的依賴注入
阿新 • • 發佈:2018-12-30
<?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();