1. 程式人生 > >tp5依賴注入(自動例項化):解決了像類中的方法傳物件的問題

tp5依賴注入(自動例項化):解決了像類中的方法傳物件的問題


app\index\Demo1.php


namespace app\index\controller;
/*
容器與依賴注入的原理
-----------------------------
1.任何的url訪問,最終都是定位到控制器,由控制器中某換個具體方法去執行
2.一個控制器對應著一個類,如果這些類需要進行統一管理,怎麼辦?
容器(原生註冊樹)來進行類管理,還可以講類的例項(物件)作為引數,傳遞給類方法,自動觸發依賴注入
依賴注入:講物件型別的資料,以引數的方式穿傳到方法的引數列表中

url訪問:通過GET方式將資料傳到控制器指定的方法中,但是隻能傳字串,數值。。。

*/
class Demo1{

    // 可以通過字串,數值用GET方式來傳值到類方法中
    public function getName($name = 'Peter')
    {
        return 'Hello'.$name;
    }

//   \app\common\Temp $temp:將會出發依賴注入

public function getMethod(\app\common\Temp $temp)
{
    //   \app\common\Temp $temp 等價於
    //   $temp = new \app\common\Temp;
         $temp-> setName('value');
         return $temp->getName();
}

}


app\common\Temp.php


namespace app\common;

class Temp
{
    private $name;
    public function __construct($name = 'Peter')
    {
        $this->name = $name;
    }
    public function setName($name)
    {
        $this->name = $name;
    }

    public function getName()
    {
        // __METHO__返回類的方法名
        
      return '方法是:'.__METHO__.'屬性是:'.$this->name;    
    }
}