文档章节

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

zhmsong
 zhmsong
发布于 2017/05/12 20:05
字数 385
阅读 162
收藏 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
粉丝 40
博文 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.3之bootstrap源码解析

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

botkenni
2016/10/28
363
0
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
laravel 源码解析

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

晓菲
2016/02/26
107
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
7分钟前
0
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部