🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 容器 - 容器来更方便的管理类依赖及运行依赖注入。 - 容器类`think\container`。容器类主要是维护`$instances`容器对象数组,和`$bind`容器绑定标识。 - 容器类 可通过容器绑定标识,利用反射机制进行实例化对象,并绑定到容器对象数组中。 - 手动绑定到容器标识`$this->app->bind('标识名', '类名')`, 也可直接绑定一个对象到容器中`$this->app->bind('标识名', '对象')` - 配置文件绑定。 可通过app目录下`provider.php`文件,进行配置需要绑定到容器标识。在App实例化的时候,批量加载此文件,进行绑定。 ### 依赖注入 - 利用容器类的反射机制进行实例化类的时候, 都支持依赖注入。如控制器架构方法,控制器操作方法,事件类的执行方法,中间件类的执行方法。或者使用`invoke()`助手函数,实例化对象。 - 将类绑定到容器标识的类,也可以支持依赖注入。 ### 调用 - 可通过app对象直接调用容器中的对象,如`$this->app->http`。框架会自动再容器对象数组中,获取该对象,如果没有,则查找容器标识数组,找出对应的类,进行实例化返回,并存储这个实例到容器对象数组中。