PHP依赖注入
/**
* 容器与依赖注入的原理
* ----------------------------------------------------
* 1.任何的URL访问,最终都是定位到控制器,由控制器中某个具体的方法去执行
* 2.一个控制器对应着一个类,如果这些类需要进行统一管理,怎么办?
* 容器来进行类管理,还可以将类的实例(对象)做为参数,传递给类方法,自动触发依赖注入
* 依赖注入:将对象类型的数据,以参数的方式传到方法的参数列表
* URL访问:通过GET方式将数据传到控制器指定的方法中
*/
namespace app\index;
//URL访问:www.test.com/index/Demo1/getname/name/thinkphp
class Demo1
{
//可以通过字符串,数值用GET方式来传值到类方法中
public function getName($name='脉动')
{
return 'Hello '.$name;
}
// app\index\Temp $temp 将会触发依赖注入
public function getMethod(app\index\Temp $temp)
{
//\app\index\Temp $temp 等价于
//$temp = new \app\common\Temp;
$temp->setName('脉动');
return $temp->getName();
}
}
/**
* 如果要穿一个对象到当前方法中?怎么办?
* 依赖注入
*/
namespace app\index;
class Temp
{
private $name;
public function __construct($name='PHP')
{
$this->name = $name;
}
public function setName($name)
{
$this->name = $name;
}
public function getName($name='脉动')
{
return '方法是:'.__METHOD__.'属性是:'.$this->name;
}
}