1、什么是容器?那么装的是什么?为什么要这么做?
字面意思理解为装东西的器皿。
装的是类实例化的对象。
第一点使用对象方便,第二点解耦。
2、什么是依赖注入?
依赖注入是指对类的依赖通过构造器完成自动注入(控制器中)。
<?php
namespace app\controller;
use think\Request;//必须引用
class Index
{
protected $req;
//将Request的类通过构造器自动注入,实例化变量名$Request
public function __construct(Request $Request)
{
//赋值变量名
$this->req = $Request;
}
public function hello($name)
{
return 'Hello,' . $name . '!This is '. $this->req->action();
}
}
//使用容器来实例化的话,可以自动进行依赖注入。
invoke(类名)
//某个方法依赖注入
invoke(['类名','方法名'])
扩展知识:
使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。