https://learnku.com/articles/10421/depth-mining-of-laravel-life-cycle
laravel的一个完整生命周期的处理都在public下的入口文件index.php文件中
1.通过composer加载项目所依赖的第三方组件库
2.创建应用实例,即实例化app服务容器(注册各种基础服务至app容器如注册应用的基础路径,注册基础服务提供者,注册核心容器别名)。
然后在服务容器中绑定内核(http内核或console内核,console内核对应通过控制台方式发送的请求),http内核还定义了中间件,中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。然后http内核定义了引导程序( 包括完成环境检测、配置加载、异常处理、Facades 注册、服务提供者注册、启动服务这六个引导程序)。如果是http请求,便把两者注册到app容器中。
3.接受请求并相应:在实例化内核时,构造函数内将在 HTTP 内核定义的「中间件组」注册到 路由器,注册完后就可以在实际处理 HTTP 请求前调用这些「中间件」实现 过滤 请求的目的。
一个 Http 请求实例会被注册到 APP 容器,随后请求被分发到匹配的路由,在路由中执行「中间件」以过滤不满足校验规则的请求,只有通过「中间件」处理的请求才能进入实际的控制器或匿名函数中。