Laravel框架深入探索-入口文件

这一系列文章旨在对Laravel框架进行深入的解析,了解和揭示框架本身的内在实现机制,以便更好地指导我们对框架的使用。

 

入口文件

基于Laravel框架开发的应用,对Web Server来说,和普通应用并无区别。所以当Web Server收到一个Http请求,不管是Apache还是Nginx,都只是简单地将其交给DocumentRoot下面特定的入口文件index.php,并等待其返回相应的结果。对Laravel而言,这个入口就是工程目录中的public/index.php文件。所有Http请求过来后,都是由这个文件进行处理的。在某种意义上,甚至可以说,都是在这个文件之内进行处理的。
 
index.php当中的代码,虽然很概括,但完整地描述了Laravel框架对一个Http请求进行处理的流程。框架中所有其他的处理过程,都被隐藏在这个概括的流程当中,等待我们去一一探索和发现。这个大概的流程,是这样的:
 
  1. 定义了一个常量:LARAVEL_START,记录脚本被启动时服务器的时间,精确到毫秒。
  2. 执行vendor/autoload.php当中的代码。这个实际上是composer的提供的一项功能,用来自动加载被composer下载的库中的所有类文件,等我们对composer进行研究之后再来具体探讨。
  3. 通过执行bootstrap/app.php当中的代码,来创建一个Laravel应用(app)实例,这个实例可以认为是一个容器,里面装载了所有为了完成一次对request进行处理并返回response所需要的各种组件。因为Web Server每收到一个http请求,都会调用一次public/index.php,所以,对每一个http请求,都是由一个全新创建的app实例来处理的。反过来,每个app实例,也都只处理一个请求。
  4. 创建一个kernel对象。
  5. 让kernel去处理http请求(也就是request对象),并将处理结果封装成一个response对象。
  6. 发送response对象。
  7. 结束对这次“request->response“的处理。
 
就是这七个步骤。

转载于:https://www.cnblogs.com/zhaoxizhe/p/11288660.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值