程序启动准备阶段
服务容器实例化
服务容器的实例化和基本注册,包括了服务容器本身注册、基础服务提供者注册、核心类别名注册和应用的基本路径注册。注册的服务只是具体的类名,是通过反射机制来实例化对象,并且通过反射机制自动解决构造函数中的依赖关系。
核心类实例化
核心类实例化是服务容器实例化后,通过核心类别名注册服务来得到的服务容器自动实例化对象。如:index.PHP中的Kernel类实例化:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
请求实例化阶段
请求是客户端发送的一个请求报文,包括请求行、请求首部和请求实体。Laravel将其分类并保存在Illuminate\Http\Request
类的实例对象中,也就是说将请求转化为一个实例对象。请求实例的创建是通过Illuminate\Http\Request
类的capture()静态方法完成的,即:
$request = Illuminate\Http\Request::capture();
但在capture()方法中,可以看出Laravel的请求实例是在Symfony请求实例的基础上创建的。而Symfony是通过PHP的全局数组$_GET、$_POST、$_COOKIE、$_FILE和$_SERVER作为参数来实例化请求的。
请求处理阶段
请求处理阶段首先是准备请求处理的环境,包括环境加载、服务提供者注册等环节,然后将请求实例通过中间件处理及通过路由和控制器的分发控制,使得不同的请求通过相应的处理程序进行处理并生成响应的过程。
响应发送和程序终止阶段
响应发送
Laravel的响应处理类是Illuminate\Http\Response
类,该类的底层也是在Symfony的Response类。响应的发送包括两部分内容:响应头信息的发送和响应主体内容的发送。
程序终止
以上是本篇文章的全部内容了,更多laravel内容请关注laravel框架入门教程。
相关文章推荐:
[ Laravel 5.2 文档 ] 架构 -- 一次请求的生命周期
原文地址:https://www.jb51.cc/laravel/1199682.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。