laravel源码阅读之应用生命周期

laravel框架在php中应该算是知名度非常高的,用了半年了,之前也只是在遇到问题时才去看对应的源码,没有好好理清各部分的实现关系,终究是半知半懂,因此决定花点时间从整体的角度研究一下这个框架。后面几篇文章我们将从源码角度窥探一下它的技术内幕,看一看我们平时使用的各种特性是如何实现的。

这里我们先简单介绍下框架的生命周期
当请求被服务器转发给laravel是,首先是进入入口文件 /public/index.php。然后做以下几件事
1. 载入自动加载文件 /bootstrap/autoload.php
2. 载入 /bootstrap/app.php 生成框架实例 app
3. 运行实例,生成内核对象kernel
4. 内核对象处理请求 handle(request),并返回处理结果 response
5. 将响应发送给客户端 response->send
6. 终止内核

上面的过程简单说来如下:进入入口文件,先载入Composer生成的自动加载配置,实现类和函数的自动加载机制。然后从 /bootstrap/app.php获取Laravel应用实例,即创建服务器容器实例。接下来,生成http或Console内核,这个由请求的类型决定。请求将被发送到这个内核进行处理。内核将会执行 bootstrappers数组定义的类,这个数组类包含 错误处理、日志、检测应用环境以及其他在请求被处理前需要处理的任务类 。在执行一系列内部中间件,预处理完成后,请求被内核的handle方法处理,该方法接受一个请求,返回一个响应。应用启动并且所有服务提供者被注册,请求将被交给路由器进行分发,即route.php文件,如果路由定义了中间件,则中间件将被执行,然后调用对应的控制器对请求进行处理。处理完成后laravel封装响应然后返回给客户端,接着框架应用被终止。请求结束

整个生命周期如上,后面几篇文章中,我们会从上面所述的几个角度从源码角度逐一看一看在这个过程中框架究竟做了什么

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值