Laravel请求生命周期从public/index.php开始,依次加载自动加载器、创建应用实例、初始化HTTP内核并引导系统环境,随后通过中间件管道预处理请求,再由路由器匹配路由规则并调度对应控制器方法,执行业务逻辑后将返回值转换为Response对象,设置响应头并发送至客户端,最后运行终止中间件完成请求处理。

当您向 Laravel 应用发起一个 HTTP 请求时,框架会经历一系列有序的步骤来处理该请求并返回响应。这些步骤构成了 Laravel 的请求生命周期,涵盖了从入口文件加载到服务容器初始化、路由分发、中间件执行以及最终响应返回的全过程。
本文运行环境:MacBook Pro,macOS Sonoma
请求首先由 web 服务器(如 Apache 或 Nginx)指向 public/index.php 文件,这是 Laravel 应用的唯一入口点。该文件负责引入 Composer 自动生成的自动加载器,并从项目根目录获取 Laravel 应用实例。
1、加载 Composer 的 autoload.php 文件,使 PHP 能够自动解析类的命名空间和依赖关系。
2、从 bootstrap/app.php 中创建并获取 Illuminate\Foundation\Application 实例,完成应用对象的初始化。
3、应用实例将用于后续绑定核心服务、注册服务提供者和启动 HTTP 内核。
Laravel 使用 HTTP 内核(App\Http\Kernel)作为请求处理的核心中枢,负责启动应用环境、加载配置、注册中间件并分发请求。HTTP 内核继承自 Illuminate\Foundation\Http\Kernel,整合了框架的基本行为。
1、index.php 将请求传递给 HTTP 内核的 handle() 方法。
2、调用内核的 bootstrap() 方法,依次执行定义在 $bootstrappers 数组中的引导类,包括错误处理配置、日志系统加载、环境变量载入、服务提供者注册等。
3、通过这些引导程序确保应用处于可运行状态,例如 加载 .env 配置文件以设置运行环境。
在请求进入路由之前,Laravel 会通过全局中间件对请求进行预处理。中间件可用于身份验证、日志记录、CORS 控制等任务,形成一条“管道”结构来过滤请求。
1、HTTP 内核实例化一个中间件管道,并将请求传入其中。
2、按照 App\Http\Kernel 中定义的 $middleware 属性顺序逐一执行全局中间件。
3、若任一中间件拒绝请求(例如未授权),则直接返回响应并终止流程;否则继续向内传递。
路由系统根据请求的 URI 和 HTTP 方法查找匹配的路由规则,并确定应调用的控制器方法或闭包函数。此过程由 Illuminate\Routing\Router 组件完成。
1、请求被送至 Router 实例,调用其 dispatch() 方法开始路由匹配。
2、遍历 RouteServiceProvider 加载的路由集合(通常位于 routes/web.php 或 routes/api.php)。
3、找到完全匹配的路由后,解析其关联的控制器动作或回调函数。
4、如果未找到匹配项,则抛出 Symfony\Component\HttpKernel\Exception\NotFoundHttpException 异常。
一旦路由成功匹配,Laravel 将通过服务容器解析控制器及其方法,并注入所需依赖。控制器负责业务逻辑处理并返回响应内容。
1、利用服务容器自动解析控制器类实例,实现依赖注入功能。
2、调用指定的方法,传入请求对象(Illuminate\Http\Request)作为参数。
3、执行业务逻辑,可能涉及数据库操作、事件触发、队列推送等操作。
4、方法返回值可以是字符串、视图、JSON 响应或 Response 实例。
控制器返回的结果会被转换为统一的 Symfony\Component\HttpFoundation\Response 实例,以便 Web 服务器正确输出。此阶段还包括会话写入、Cookie 设置等收尾工作。
1、Laravel 将控制器返回值封装成 HttpResponse 对象,支持多种格式如 JsonResponse、RedirectResponse 等。
2、调用 prepareResponse() 方法设置头部信息、状态码和内容类型。
3、执行 terminate 中间件(通过 Kernel 的 terminateMiddleware() 触发),允许在响应发送后运行耗时任务,如日志清理。
4、调用 send() 方法将响应内容输出至客户端浏览器。
以上就是laravel的请求生命周期具体是怎样的_laravel请求生命周期解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号