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