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];
}

laravel服务提供者类说明的更多相关文章

  1. laravel 服务提供者

    服务提供者,在laravel里面,其实就是一个工厂类.它最大的作用就是用来进行服务绑定.当我们需要绑定一个或多个服务的时候,可以自定义一个服务提供者,然后把服务绑定的逻辑都放在该类的实现中.在lara ...

  2. Laravel 服务提供者实例教程 —— 创建 Service Provider 测试实例

    从某种意义上说,服务提供者有点类似HTTP控制器,HTTP控制器用于为相关路由注册提供统一管理,而服务提供者用于为相关服务容器提供统一绑定场所,此外服务提供者还可以做一些初始化启动操作.Laravel ...

  3. 重写Laravel异常处理类

    现在开发前后端分离变得越来越流行了,后端只提供接口返回json格式的数据,即使是错误信息也要以json格式来返回,然而目前无论是Laravel框架还是ThinkPHP框架,都只提供了返回json数据的 ...

  4. laravel 服务提供者介绍和使用

    #安装传送门 安装composer,以及通过composer安装laravel #讲解使用 服务提供者这个具体表现都是围绕着依赖注入 在根目录config/app.php的providers中的数组中 ...

  5. laravel 核心类Kernel

    vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php.是laravel处理网络请求的最核心类,在app容器准备好了之后, ...

  6. 如何查看laravel门脸类包含方法的源码

    以Route门脸类为例,我们定义路由时使用的就是Route门脸类,例如我们在web.php中定义的路由 use Illuminate\Support\Facades\Route; Route::get ...

  7. laravel 控制器类DB类操作

    例子:TrGo表(trgo_chip): laravel框架建立:TrGoModel <?php namespace TrChaos\Model; class TrGoModel extends ...

  8. [转]laravel DB类SQL语句操作(CURD)

    本文转自:https://blog.csdn.net/woshihaiyong168/article/details/52992812 版权声明:本文为勇哥原创文章,转载请注明出处哦!!! https ...

  9. laravel策略类,实现当前登陆的用户是否具有删除,修改文章的权限

    策略类依赖月门脸类Auth 首先创建一个门脸类 make:auth 然后再创建一个策略  php artisan make:policy PostPolicy 定义Auth的登陆类,用的是哪个模型登陆 ...

随机推荐

  1. PL/SQL 使用控制流程

    一.条件分支语句 1.if判断 IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; 2.if else判断 IF <布尔表达式> THEN PL/SQ ...

  2. Java锁--CyclicBarrier

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3533995.html CyclicBarrier简介 CyclicBarrier是一个同步辅助类,允许一 ...

  3. Linux运行shell脚本提示No such file or directory错误的解决办法

    Linux执行.sh文件,提示No such file or directory的问题: 原因:在windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示No s ...

  4. 题解[51nod1555] 布丁怪

    题解[51nod1555] 布丁怪 题面 解析 本文参考这位dalao的题解 首先有一个巧妙的转换, 开一个数组记录每个横坐标的纵坐标, 简单来说就是对于点(x,y),令a[x]=y. 于是问题就变成 ...

  5. 记录从裸机到TensorFlow GPU版运行 的配置过程

    实验室原来有一台装Ubuntu Server系统的服务器,安装有tensorflow,在使用过程中经常出现断网.死机.自动关机等毛病,忍无可忍,决定重装系统 配置如下:Dell工作站,Xeon-E5 ...

  6. 查看工程里有多少行java代码

    /** * @Classname CustBankcardServiceImpl * @Description 计算项目代码量(行数) * @Date 2019/11/04 14:24 * @Crea ...

  7. learning scala regular expression patterns

    package com.aura.scala.day01 import scala.util.matching.Regex object regularExpressionPatterns { def ...

  8. Bzoj 2301: [HAOI2011]Problem b(莫比乌斯反演+除法分块)

    2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Description 对于给出的n个询问,每次求有多少个数对(x, ...

  9. Poj 2104 K-th Number(主席树&&整体二分)

    K-th Number Time Limit: 20000MS Memory Limit: 65536K Case Time Limit: 2000MS Description You are wor ...

  10. [JXOI2017]颜色

    \(Orz\) 各位题解大佬,我来膜拜一发 还有单调栈实在没弄懂 法一:线段树+堆 首先,讨论区间的个数的题目,我们可以想到枚举一个端点\(r\),找到所有的\(l\) 我们不妨设:\(ml[i]\) ...