博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel 请求周期
阅读量:6457 次
发布时间:2019-06-23

本文共 1103 字,大约阅读时间需要 3 分钟。

Laravel 请求周期

加载 composer 自动加载器

require __DIR__.'/../bootstrap/autoload.php';

获取 Application 应用对象

// 此 $app 对象贯穿全文$app = require_once __DIR__.'/../bootstrap/app.php';主要过程:    1. 设置基础路径    2. 基础绑定    3. 注册全局基础服务    4. 核心容器别名设置    5. 注册三个单例

获取 Kernel 对象

// 此 $kernel 对象为 Laravel 应用的枢纽,将会协调各部分之间的工作,完成请求$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);主要过程:    1. 注入应用对象    2. 注入事件对象    3. 注入路由集合对象    4. 注入路由对象    5. 将各中间件注入到路由对象

获取 Request 对象

$request = Illuminate\Http\Request::capture()主要过程:    1. 委托\Symfony\Component\HttpFoundation\Request组件,并注入全局变量(封装成相应的对象),创建基础请求对象    2. 通过基础请求对象创建 $request

处理 Request 对象,返回 Response 对象

$response = $kernel->handle(    $request = Illuminate\Http\Request::capture());主要过程:      1. 注入请求对象($request)    2. 根据配置项设置应用的运行环境(包括加载设置系统环境变量、加载配置文件、设置系统错误异常、设置 Facade、注册配置项的服务提供者、启动服务提供者的引导项)并触发相应的事件    3. 处理全局中间件    4. 路由解析(请求分发、路由查找、路由匹配、路由分离器设置、事件分发、路由执行)    5. 通过路由解析返回的 content 创建 $response 对象    6. 设置 $response 对象的响应头

发送响应

$response->send();

执行后续操作

$kernel->terminate($request, $response);主要过程:    1. 获取中间件,并尝试触发每个中间件的 terminate 方法    2. 触发 terminate 的事件

转载地址:http://xtizo.baihongyu.com/

你可能感兴趣的文章
[Processing]点到线段的最小距离
查看>>
考研随笔2
查看>>
乱码的情况
查看>>
虚拟机centos 同一个tomcat、不同端口访问不同的项目
查看>>
在不花一分钱的情况下,如何验证你的创业想法是否可行?《转》
查看>>
Linux/Android 性能优化工具 perf
查看>>
GitHub使用教程、注册与安装
查看>>
论以结果为导向
查看>>
CODE[VS] 1294 全排列
查看>>
<<The C Programming Language>>讀書筆記
查看>>
JS详细入门教程(上)
查看>>
Android学习笔记21-ImageView获取网络图片
查看>>
线段树分治
查看>>
git代码冲突
查看>>
利用android studio 生成 JNI需要的动态库so文件
查看>>
poll
查看>>
解析查询 queryString 请求参数的函数
查看>>
学生选课系统数据存文件
查看>>
我的毕设总结所用的技术和只是要点 基于stm32F4的AGV嵌入式控制系统的设计
查看>>
JMeter—断言
查看>>