Laravel 框架的生命周期
- 项目入口文件:public/index.php
- 加载项目依赖:通过 Composer 的自动加载器 autoload.php,加载项目所需的第三方库和类文件。
- 创建服务容器实例(应用实例 $app ):通过 bootstrap/app.php 创建应用实例,该实例负责管理框架的所有组件和服务。
- 绑定内核:在应用实例中绑定 HTTP 内核和 Console 内核,以及异常处理器。
- 处理 HTTP 请求:通过 HTTP 内核接收并分发请求,执行路由、中间件、控制器等逻辑,生成响应对象。
- 发送响应:返回响应结果,将响应对象发送给客户端。
- 终止应用:执行一些后续操作,如关闭数据库连接、清理缓存等。
在生命周期中,服务提供者非常重要,它们负责注册和启动框架的各种组件和服务,如数据库、队列、验证器、路由等。
服务提供者可以在 config/app.php 配置文件中定义,并在应用实例创建后被加载和执行。
生命周期概览
请求的入口文件
Laravel 应用的所有请求入口都是 public/index.php 文件,所有请求都会被 web 服务器(Apache/Nginx)导向这个文件。
index.php 文件包含的代码并不多,但它是加载框架其它部分的起点。
<?php
define('LARAVEL_START', microtime(true));
// Register The Auto