Di 容器 / 依赖注入
最后更新于:2022-04-02 02:21:36
[TOC]
## 概述
依赖注入与单例模式类似, 在不继承
```
$di = Di::getInstance();
//可存入类
$di->set('test',new TestClass());
$di->set('test',TestClass::class);
// 可存入方法
$di->set('test', [TestClass::class,'testFunction']);
// set的时候传递了类名,get的时候才去new对象,并且将可变变量传递进构造函数,返回实例化后的对象
$di->set('test', TestClass::class, $arg_one, $arg_tow);
//get
$db = $db->get('test');
//delete
$di->delete('test');
//清空所有容器
$di->clear();
```
## 案例
```
namespace App\Lib;
class Add {
public function add(int $a,int $b){
return $a+$b;
}
}
```
注入
```
//注入 类
\EasySwoole\Component\Di::getInstance()->set("add",\App\Lib\Add::class);
$add = \EasySwoole\Component\Di::getInstance()->get("add");
$add->add(1,2);//3
//注入方法
\EasySwoole\Component\Di::getInstance()->set("add",[\App\Lib\Add::class,'add']);
$add = \EasySwoole\Component\Di::getInstance()->get("add");
$add(1,2);//3
```
';