IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Lavavel源码剖析之index.php介绍(一) -> 正文阅读

[PHP知识库]Lavavel源码剖析之index.php介绍(一)

内心独白

用了将近三年的Laravel,对框架的使用也算是比较熟练了,也曾尝试去阅读源码,但是结果是令人沮丧的,Laravel的优雅,一度让我放弃了对它的探索,最近手头上比较闲,下定决心完整的读了下来,过程虽然很艰辛,但是收获颇丰,并且让我得到了比项目做完更大的成就感。

正文开始

首先,不用多说,我们需要先定位到框架的入口文件public目录下的index.php,看看它都做了什么。

因为我不想放过Laravel的任何一个优雅的细节,所以我连注释都没有放过,以我小学英语的水平,也不知道哪里来的自信。

首先映入眼帘的是Laravel的自我介绍

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package  Laravel
 * @author   Taylor Otwell <taylor@laravel.com>
 */

大意是:
Laravel——一个面向Web工匠的PHP框架
引用包 Laravel
作者   Taylor Otwell <taylor@laravel.com>

第一行代码:

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

定义LARAVEL_START常量,记录laravel启动时间。

/*
|--------------------------------------------------------------------------
| 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.
|
*/
注册自动加载
----------------------------------------------------------------------------
Composer为我们的应用程序提供了一个方便的、自动生成的类加载器。我们仅仅需要使用它!
在这里,我们只需要将它放入脚本中,这样我们就不必担心以后手动加载任何类,感觉很轻松。

第二行代码:

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

引入composer自动加载类

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/
开灯
------------------------------------------------------------------------------
我们需要illuminate(照明)PHP扩展,因此我们开灯。引导框架为我们的使用做好准备,然后它将
加载此应用当我们当我们运行它的时候,并且发送响应返回给浏览器,让我们的用户感到高兴

第四行代码,这里才算是正式开始,引入框架:

$app = require_once __DIR__.'/../bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
启动应用
---------------------------------------------------------------------------
一旦我们有了这个应用,我们可以处理进来的请求通过kernel(内核),并且发送相关的响应返回到
客户端的浏览器,让他们享受我们为他们准备的创造性和精彩的应用程序

第五行代码,这里是重点:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

加载kernel核心请求类,make详解可以看这篇https://blog.csdn.net/Attitude_do_it/article/details/121512469icon-default.png?t=LA92https://blog.csdn.net/Attitude_do_it/article/details/121512469

第六行代码:

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

处理请求并给出响应

第七行代码:

$response->send();

响应发送到客户端

第八行代码:

$kernel->terminate($request, $response);

在响应完成后进行的一些操作

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 07:55:27  更:2021-11-25 07:56:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:59:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码