【laravel 实现杂谈】生命周期 - (sunznx) 振翅飞翔
03 September 2019

参考:https://laravel.com/docs/master/lifecycle

php 框架的请求都是从 index.php 开始的,laravel 的 index.php 会初始化一个 容器 $app ,然后会调用 Kernel->handle 方法

Kernel 有几个关键变量

$bootstrappers
$middleware
$middlewareGroups
$routeMiddleware
$middlewarePriority

其中 bootstrappers 是 laravel 底层运行时的关键,middleware 等变量是 路由请求相关的。

默认的 bootstrappers 在 Illuminate/Foundation/Http/Kernel.php(以 http 请求为例) 里,如下

protected $bootstrappers = [
    \Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
    \Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
    \Illuminate\Foundation\Bootstrap\HandleExceptions::class,
    \Illuminate\Foundation\Bootstrap\RegisterFacades::class,
    \Illuminate\Foundation\Bootstrap\RegisterProviders::class,
    \Illuminate\Foundation\Bootstrap\BootProviders::class,
];

laravel 的整体就是围绕着这几个 bootstrapper 开始的,自上而下,环环相扣。