多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 容器和依赖注入 5.1正式引入了容器的概念,用来管理类依赖及运行依赖注入。 >[danger] 5.0版本已经支持依赖注入的,依赖注入和容器没有直接关系,只是有时候还不够方便而已 使用`app`助手函数获取容器中的对象实例(支持依赖注入)。 ~~~ $app = app(); // 判断对象实例是否存在 isset($app->cache); // 注册容器对象实例 $app->cache = think\Cache::class; // 获取容器中的对象实例 $cache = $app->cache; // 或者使用助手函数 $cache = app('cache'); ~~~ 5.0自动注入的方式有所区别,绑定操作不再使用`Request`对象而是直接注册到容器`Container`类或者`Facade`类,并且支持模型事件和数据库事件的依赖注入,依赖注入会首先检查容器中是否注册过该对象实例,如果有的话就会自动注入,例如: 我们可以给路由绑定模型对象实例 ~~~ Route::get('user/:id','index/Index/hello') ->bindModel('\app\index\model\User'); ~~~ 然后在操作方法中自动注入User模型 ~~~ <?php namespace app\index\controller; use app\index\model\User; use think\Controller; class Index extends Controller { public function hello(User $user) { return 'Hello,'.$user->name; } } ~~~