依赖注入允许向类中的方法传递对象
其实依赖注入就是类型约束,可以参考官网文档,被写在方法参数中的类会被自动实例化,这就是依赖注入
公用类Temp
<?php
namespace app\common;
class Temp
{
// 公用属性,可以在URL中访问,protected和private不可以在外部访问
public $name;
// 构造方法,调用类时自动运行
public function __construct($name = '默认名称')
{
$this->name = $name;
}
public function set($name)
{
$this->name = $name;
}
public function get()
{
return '当前方法为:'.__METHOD__.'当前属性为:'.$this->name;
}
}
在Demo类中使用依赖注入,为当前方法传入一个自动实例化的类,实例化后赋值给$temp变量
<?php
namespace app\demo\controller;
class Demo
{
// 使用了依赖注入,给setName方法注入了一个对象,同时这个对象中需要传入一个name属性
public function setName(\app\common\Temp $temp,$name)
{
// 这里的\app\common\Temp $temp相当于$temp = \app\common\Temp;
$temp->set($name);
return $temp->get();
}
public function getInfo(\app\common\Temp $temp)
{
return $temp->get();
}
public function getName(\app\common\Temp $temp)
{
return $temp->name;
}
}