【Laravel—核心源码解析】(一)入口文件index.php

前言 Larave作为近年来最流行的PHP框架之一,在目前的工作中也是使用比较频繁的框架,功能十分全面。框架底层封装思想先进,使用了很多PHP的新特性,以核心的服务容器展开,对服务进行启动注册,使用时注入,进行解耦,注重代码的组件化和可扩展性,提供门面(外观)模式在开发时能够更优雅的调用所需服务。是一款很值得研究的PHP框架,在源码学习的过程中还是有遇到不少难题,这个系列文章就通过自己的学习积累,记录下要点,方便进行后续回顾;
其它 材料:Laravel6.0
安装:Composer 使用Composer安装Laravel
Laravel框架的功能点很多,这个系列的文章还是针对核心流程源码的解析进行记录,仅推荐对Laravel常规使用已经了解但需探索源码的朋友进行观看。因为框架源码跳动性比较大,所以核心源码解析系列进行大流程上的注释描述,一些重要且频繁使用的功能会单独写文章进行具体描述。如果错误烦请留言区纠正;
正文 首先先了解框架的重要思想:依赖注入、控制反转、服务容器、服务提供者
其次再了解服务容器常用方法:服务容器绑定篇、服务容器解析篇
Laravel的入口文件index.php默认是放在根目录中的public目录下,下面直接贴源码(这里及后续附上的都是删除官方注释,以及非主要流程后的源码)以注释的方式进行概述,具体的功能会再后续的文章中进行详细描述

//设置框架启动时间(Unix 时间戳) define('LARAVEL_START', microtime(true));

//引入Composer注册自动加载程序, Laravel的自动类文件自动加载等功能都是通过Composer来实现的 require __DIR__.'/../vendor/autoload.php';

对应解析->Composer注册自动加载
//引入核心应用类, 主要是实现核心类库加载以及Laravel框架中核心的服务容器注册加载等 $app = require_once __DIR__.'/../bootstrap/app.php';

对应解析->核心应用容器类Application
//获取在app.php中已经注册的Kernel $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

//TODO 停更一段时间
//容器中绑定的Kernel是App\Http下的,该类继承了Illuminate\Foundation\Http下的Kernel,这里调用的就是父类的handle方法 //主要实现的功能是通过管道实现中间件及路由分发执行 $response = $kernel->handle( //创建request实例 $request = Illuminate\Http\Request::capture() );

//响应请求 $response->send();

//响应中间件 $kernel->terminate($request, $response);

【【Laravel—核心源码解析】(一)入口文件index.php】END

    推荐阅读