什么叫依赖注入
依赖注入就是,我们将一个类的(实列)对象传递到另外一个类的方法中就叫依赖注入
我们举一个列子,基于TP5.1 我们建立两个类,一个控制器类,一个公共类
容器与依赖注入的原理
- 1.任何的URL访问,都是定位到某个控制器中 比如 www.test.com/index.php/admin/demo1/getName 对应控制器(getname)方法
- 我们进行传参一般 都是 字符串、数值 比如
- www.test.com/index.php/admin/demo1/getName/name/test;
- 其中 name/test 就代表我们 传的参数
但是如果我们要传递一个对象,那么就只能用到依赖注入
- 依赖注入:将对象类型的数据,以参数的方式传到方法的参数列表中
- 依赖注入:解决了向类中传递对象的问题
//控制器类:
<?php
namespace app\admin\controller;
use app\common\Temp;
class Demo1
{
//可以通过字符串、数值用get传值
public function getName($name='zz')
{
return 'hello'.$name;
}
/**
* @param Temp $temp
* 一旦我们对一个参数进行约束成对象,就自动实列化
* Temp $temp 就叫依赖注入
*/
public function getMethod(Temp $temp)
{
//Temp $temp 等价于 $temp = new Temp();
$temp->setName('php');
return $temp->getName();
}
<?php
//公共类
namespace app\common;
class Temp
{
private $name;
public function __construct($name='我就是一个测试')
{
$this->name=$name;
}
public function setName($name)
{
$this->name=$name;
}
public function getName()
{
return '方法是:'.__METHOD__.'熟悉'.$this->name;
}
}