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 ```
';