Laravel 6 - 第四章 生命周期

文章目录

Laravel 6 - 第一章 简介
Laravel 6 - 第二章 项目搭建
Laravel 6 - 第三章 文件夹结构
Laravel 6 - 第四章 生命周期
Laravel 6 - 第五章 控制反转和依赖注入
Laravel 6 - 第六章 服务容器
Laravel 6 - 第七章 服务提供者
Laravel 6 - 第八章 门面
Laravel 6 - 第九章 契约
Laravel 6 - 第十章 路由
Laravel 6 - 第十一章 中间件
Laravel 6 - 第十二章 控制器
Laravel 6 - 第十三章 请求
Laravel 6 - 第十四章 响应
Laravel 6 - 第十五章 验证器
Laravel 6 - 第十六章 Artisan命令
Laravel 6 - 第十七章 配置数据库
Laravel 6 - 第十八章 模型



一、Http 请求的生命周期

在了解 Laravel 6 的生命周期之前,需要先简单了解 Http请求 的生命周期:
1、用户(客户端)和 Web服务器 通过 TCP/IP 协议建立连接(俗称:上网)。
2、向 Web服务器 发送 Http请求,也就是用户上网的动作(比如:搜索、上传、下载等)。
3、Web服务器 接受到请求后开始解析,解析完成后并返回 Http响应(用户上网时想看到的结果)
4、释放 TCP 连接:Web服务器 发送完响应后,需要释放 TCP 连接。如果连接模式为 close ,则会主动关闭连接;如果连接模式为 keepalive,则该连接会保持一段时间,以便在这段时间内继续接受请求。


二、Laravel 6 的生命周期

1.请求进入

当用户通过浏览器或者其他客户端(如:app、小程序等)发送 Http请求Laravel应用 时,生命周期开始。

2.接受请求

Web服务器(如:Apache、Nginx等)接受到请求,并将其传递给 php 解释器。

3. 引导程序

Laravel 6 的所有请求入口都是 public/index.php (第二章myapp.conf 中配置的项目路径),index.php 文件加载 composer 生成的自动加载设置,然后从 bootstrap/app.php 中检索应用程序的实例,初始化核心组件(如:服务器容器、事件分发器等)

4.创建请求实例

创建一个 Illuminate\Http\Request 对象,该对象封装了 Http 请求的所有信息(如:url、请求头、请求方法、查询参数等)

5.中间件处理

加载并运行 全局中间件路由指定的中间件中间件 可以在请求到达目标路由之前或响应返回给客户端之前执行代码,用于处理 身份验证日志记录cors 设置等任务。

6.路由解析

路由组件解析 请求的 url ,并根据定义的路由规则确定应该调用哪个控制器方法或闭包函数。

7.执行控制器方法或闭包

路由解析完成后,调用相应的控制器方法或闭包函数。这是业务逻辑处理的主要位置,在这里执行数据库查询、数据验证、文件操作等。建议做逻辑分离,不要将所有逻辑混在一个方法中,这样有助于降低耦合度,减少程序维护成本。

8.视图渲染

控制器方法通常会返回一个视图实例或响应对象。如果返回视图实例,则会使用视图组件来渲染视图文件,生成 HTML 响应。视图也可以包含从控制器传递过来的数据。如果是前后端分离,则可不使用视图渲染。

9.发送响应

将生成的响应对象发送回客户端,响应可以是一个 HTML 页面、JSON 数据、图片或其他任何内容。

10.终止事件

响应发送后,会触发终止事件,执行清理或记录操作,这些操作不影响发送给客户端的响应。


总结

在整个请求生命周期中,Laravel 6 还提供了许多事件和钩子,允许开发者在特定阶段插入自定义逻辑。例如:使用服务提供者来注册自定义的服务或在中间件中执行跨请求逻辑等。

理解 Laravel 6 的请求生命周期有助于更好地组织代码,实现关注点分离,并在正确的位置执行逻辑。通过合理地利用中间件、事件和钩子,可以构建出高效、可维护、可扩展的应用程序。

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆旅岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值