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;
}
}