IoC 是将内部设计的类交给系统去控制,但是有些类在初始化的时候,需要制定特定的参数,或者当你需要将实现类绑定到某个接口,这时候就必须对这些依赖进行配置,系统才能正确解析并引用。

register

而 register 就是这样一个地方,你可以在 register 配置类的依赖,绑定实现类到接口,设置类的别名等等。

boot

而 boot 方法在 register 方法之后调用,这就意味着,你无须担心在注入某个实例的时候,他还没有被绑定或实例化。

例如你建立了 SegmentFault 和 SegmentFaultApi 两个类,前者依赖与后者,但是在 register 中你不确定那个类先被实例化了,那么你可以在 boot 中再对后者进行引用,因为此时两个类都已经进行正确的配置。

providers

providers 方法用于延迟加载的 ServiceProvider,比如希望在引用的时候再让系统去解析那个类,那么可以设置 $defer 变量为 true 来延迟启动,节省开销:

protected $defer = true;

当设置了延迟启动,需要重写 providers 函数。当 Laravel 遇到延迟加载的类,只要在每个 ServiceProvider 中的 providers 函数中搜索制定的引用关键字,便可以调用正确 register 函数的解析该类:

public function providers() {
return [SegmentFault::class];
}

最新文章

  1. IOS开发之画图形
  2. 之前总结的今天给大分享一下iOS
  3. 安卓与PC网络对接实现视频实时播放
  4. SVG操作插件:SVG.JS 个人提取部分实用中文文档
  5. 错误:StrictMode $ AndroidBlockGuardPolicy.onNetwork
  6. licens 问题 Error (292028): Specified license is not valid for this machine
  7. MVC中如何在controller的action中输出JS到页面上
  8. 工作总结:qsort函数用法
  9. WindowsForm 记事本 对话框
  10. Python网络01 原始Python服务器
  11. flask_restful 学习笔记
  12. SQL列中含有换行符的查找和替换方法
  13. 笔记10 在XML中声明切面(1)
  14. ASP.Net笔记整理(一)
  15. Python---第3方库
  16. Python 数据可视化 -- pillow 处理图像
  17. vi编辑光标跳到文件开头和结尾以及清空文件命令
  18. javascript 运算符优先级
  19. js模拟栈
  20. Window下mysql环境配置问题整理

热门文章

  1. Robot Framework--标签Tag
  2. qsort中的函数指针,及函数解释
  3. 【中国剩余定理-入门】-C++
  4. MyBatis底层实现原理: 动态代理的运用
  5. Oracle 10g和11g中的自动统计任务
  6. OSS的简单使用
  7. SPOJ 2939 QTREE5 LCT
  8. 2019-2020 ICPC, Asia Jakarta Regional Contest
  9. 新路由3newifi3路由器刷机newifi3breed解锁小白刷机教程路由器刷breed老毛子Padavan固件
  10. grafana 的配置文件,和使用mysql数据库做持久化