laravel容器是什么时候绑定服务提供者里面register的服务的

一直对服务提供者的原理也不会很明白了,今天特意去找了一下laravel在那里绑定服务提供者所提供的服务。

首先我们都知道laravel是单入口框架。那么一切的开始都是从index.php开始的。


index.php

好多小伙伴就不理解了,为什么要在处理请求的时候才开始绑定配置中的服务提供者提供的服务呢。这里我猜测是为了,减轻框架的开支,就比如说一个请求就不没有通过路由器,那就没有必要去加载很多的服务,直接返回就可以了,这样,优化了框架的开支。

不信的小伙伴可以继续往下看。

我们进入生成$app的文件看一下


bootstrap/app.php

很明显我们的框架只是加载了基本的三个服务。

用来处理错误的服务。

任务调度的服务。

处理http  请求的服务。


那我们在配置文件里面配置的服务提供者的服务是在那里绑定的呢?

我们开始去看index.php里面的这句话。

$response = $kernel->handle(

    $request = Illuminate\Http\Request::capture()

);

寓意很简单,就是开始处理请求,并生成返回。

那么我们看一下http服务这个kernel里面的handle()方法。

Http/Kernel.php里面只是一些配置的中间件,没有什么可说的,那么我们进去这个类的父类。


\Illuminate\Foundation\Http\Kernel


注意这里的$bootstrappers的数组里面的\Illuminate\Foundation\Bootstrap\RegisterProviders::class,

元素,我们一会要提到他。

还是继续上面的handle()方法。


handle()方法

那我们看上图标红框的方法


sendRequestThroughRouter()方法

看!这里有一个bootstrap()方法。

继续跟。


bootstrap()方法

这里的bootstrapWith()方法里面的参数就是拿的我们这个数组


$bootstrappers

$this->app->bootstrapWith($this->bootstrappers());

这里的$this->app就是全局服务容器嘛,所以就去看\Illuminate\Foundation\Application这个文件喽。


bootstrapWith()方法

所以我们看到了这里我们会把

\Illuminate\Foundation\Bootstrap\RegisterProviders::class,这个服务解释出来,那么就去看这个文件喽


bootstrap

那就继续看registerConfiguredProviders()


registerConfiguredProviders()方法

好了,我们终于看到了app.providers这个字符串了。

谢谢大家

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 3,029评论 0 12
  • 1. 服务提供者配置: 2. 服务提供者主要方法: 3. 注册服务提供者流程 3.1 注册流程的过程大概 3.1...
    AntFoot阅读 3,790评论 1 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • Laravel 学习交流 QQ 群:375462817 本文档前言Laravel 文档写的很好,只是新手看起来会有...
    Leonzai阅读 7,530评论 2 12
  • 好想,买一个太阳 去照亮妈妈的窗 融化,窗棱的霜花 尽管,尽管天如此灰暗 单薄,可是我去哪买一个 太阳,能让人安然...
    木鱼的眼_泪阅读 178评论 0 1