文档章节

Laravel源码入门-启动引导过程(二)bootstrap/autoload.php

zhmsong
 zhmsong
发布于 2017/05/12 20:05
字数 385
阅读 103
收藏 1

Laravel 由 public/index.php 开始,第一条语句是

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/

require __DIR__.'/../bootstrap/autoload.php';

这个语句执行实现了注册类自动载入,让我们再来看看 bootstrap/autoload.php 的代码

<?php /* bootstrap/autoload.php */

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Register The Composer Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so we do not have to manually load any of
| our application's PHP classes. It just feels great to relax.
|
*/

require __DIR__.'/../vendor/autoload.php';

这里的 autoload.php 又引入和执行了 vendor/autoload.php。我们思考为什么不把 autoload.php直接放入public目录中呢?或许是为了目录结构上分类的更加明确,引入来自起到启动功能的 bootstrap 目录中的文件,boostrap 的目录结构见图。其中的 bootstrap/app.php 就是Laravel所谓的点亮环节所需要的创建$app的类。bootstrap/cache/services.php 看来也 bootstrap 时用到的缓存内容,里面先期写入了大量的 ServiceProvider,是否启动时载入,还未能看到源代码出处。

<?php /* vendor/autoload.php */

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit0fc4a53da1567ed0671996be0e3e77c6::getLoader();

上面是 bootstrap/autoload.php 载入和执行的 vendor/autoload.php,执行一次,这是由 Composer 产生的。

== 总结 ==

类自动载入部分,由 public/index.php 开始,到 bootstrap/autoload.php,深入到 vendor/autoload.php,最后是 vendor/composer/autoload_real.php。用目录图再回顾一下。

© 著作权归作者所有

共有 人打赏支持
zhmsong
粉丝 41
博文 126
码字总数 65130
作品 0
海淀
程序员
Laravel 4 入门三讲(上)laravel 在启动的时候到底做了什么?

  在 Laravel 4 的官方文档里介绍了如何快速的使用它来开始程序的开发。然而相对于如何快速的输出“Hello Word!”笔者更关心的,是在执行到“Hello Word!”这句代码之前程序都做了哪些事情...

成武
2013/11/26
0
5
laravel 5.1 源码阅读

laravel类似其他php框架,采用了单一入口,入口文件为 /public/index.php /public/index.php主要做了以下几件事: 引用 /bootstrap/autoload.php, 这里是类的一些引入机制和优化,这里首先定义...

FalconChen
2016/03/25
173
1
laravel5.0升级到5.1

1、修改composer.json。将其中的"laravel/framework": "5.0."修改为"laravel/framework": "5.1."; 2、在bootstrap下创建目录cache,在cache目录中放入一个.gitignore文件,内容为: * !.gi...

冠岑
2015/06/11
0
0
Laravel5.3之bootstrap源码解析

说明:Laravel在把Request通过送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作,并将个人的研究心得分享...

botkenni
2016/10/28
363
0
laravel 源码解析

入口文件 index.php IlluminateFoundationApplication 类 注入所有基础 Service Provider 入口文件 index.php 一个基于Laravel的应用,当WEB服务器接受到来自外部的请求后,会将这个这个请求...

晓菲
2016/02/26
107
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

springmvc入门之映射处理器(一)

1.简析映射处理器 在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射处理器,而且我们也可以自定义映射处理器。下面的实例展示spring中最常用的两个映...

明理萝
3分钟前
1
1
一个破碎的人,窃机浪漫飞行后自由坠毁

简评:A sick man who needs treatment 29 岁的 Richard Russell 是西雅图机场地勤人员,上周五,在刚进入秋天的日子,他偷了一架未载客的飞机,在空中飞行独自超过一小时,甚至驾机在空中翻...

极光推送
4分钟前
0
0
linux一次性解压多个.gz或者.tar.gz文件

解压多个压缩包 对于解压多个.gz文件的,用此命令: for gz in *.gz; do gunzip $gz; done 对于解压多个.tar.gz文件的,用下面命令: for tar in *.tar.gz; do tar xvf $tar; done...

小兔纸乖乖
15分钟前
0
0
bower 安装包的使用

一,bower是什么? bower是一种包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。 它依赖于node.js和npm,如果要使用它需要先安装node.js和npm,因为node.js包含n...

nsns
18分钟前
0
0
EXCEL简易的进度条

在进度栏非常简单的进度控制,以下知道程序是否已完成。 Dim x As IntegerDim MyTimer As Double'Change this loop as needed.For x = 1 To 50' Do stuffApplication.StatusBar = ...

tedzheng
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部