第一帖 Laravel index.php
前言
非常喜欢这个论坛,这是开通博客后的第一篇。本人接触laravel一年有余,但总感觉一团迷雾。最近心血来潮,想从头看一遍源码。打算从入口文件开始,边探索边整理,尽量简洁明了。因php基础并不好,读源码估计会遇到困难,时间也会很漫长,也会有理解错误的地方。希望论坛前辈指正错误。对于新手,文章仅供参考,错误之处多多包涵。
入口文件 index.php
第一句代码,程序运行的开始时间
define('LARAVEL_START', microtime(true));
/**
* 程序开始时间
* yt:返回当前 UNIX 时间戳和微秒数
* echo microtime(); //0.80035500 1582688754
* echo microtime(true); //1582688833.1706
* 1秒(s) =1000 毫秒(ms) = 1,000,000 微秒(μs)
*/
第二句代码,类的自动加载 Laravel 源码笔记 Composer 自动加载
/*
|注册自动加载程序
|--------------------------------------------------------------------------
|Composer提供了一个方便的、自动生成的类装入我们的应用程序。
|我们只需要利用它!我们只需要简单的在这里require它
|这样以后我们就不用考虑手动去加载我们的任何类
|如此的轻松感觉很棒。
|vendor供应商
*/
require __DIR__.'/../vendor/autoload.php';
第三句代码,实例化服务容器 Laravel 源码笔记 2 App 服务容器
/*
把灯打开
|-----------------------------------------------------
|我们需要照亮PHP开发,所以让我们打开灯。
|这将引导框架并准备使用它
|将加载此应用程序,以便我们可以运行它
|并发送响应回到浏览器和让我们的用户喜欢。
|bootstrap引导 app应用
|$app 实例化的应用程序
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
余下代码
/*
|-----------------------------------------------------
运行应用
|-----------------------------------------------------
|一旦我们有了应用程序,我们就可以通过kernel(内核)处理传入的请求并将相关的响应发送回客户端浏览器
|让他们享受创意我们为他们准备的精彩的应用程序。
|Illuminate照亮 Contracts契约 Kernel核心 capture捕获 terminate终止 handle处理
*/
//$app->make();从容器中实例化http-Kernel契约核心类的实现类
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
//handle()方法处理请求
$response = $kernel->handle(
//通过内核处理 Request类捕获请求后形成的request对象
$request = Illuminate\Http\Request::capture()
);
//返回响应
$response->send();
//终止核心程序
$kernel->terminate($request, $response);
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: