资讯专栏INFORMATION COLUMN

Laravel 请求周期

Cristalven / 1843人阅读

摘要:请求周期加载自动加载器获取应用对象实例化应用解析此对象贯穿全文主要过程设置基础路径基础绑定注册全局基础服务核心容器别名设置注册三个单例获取对象实例化此对象为应用的枢纽,将会协调各部分之间的工作,完成请求主要过程注入应用对象注入事件对象注入

Laravel 请求周期 加载 composer 自动加载器
require __DIR__."/../bootstrap/autoload.php";
获取 Application 应用对象 Laravel 实例化应用解析
// 此 $app 对象贯穿全文
$app = require_once __DIR__."/../bootstrap/app.php";

主要过程:
    1. 设置基础路径
    2. 基础绑定
    3. 注册全局基础服务
    4. 核心容器别名设置
    5. 注册三个单例
获取 Kernel 对象 Laravel kernel实例化
// 此 $kernel 对象为 Laravel 应用的枢纽,将会协调各部分之间的工作,完成请求
$kernel = $app->make(IlluminateContractsHttpKernel::class);

主要过程:
    1. 注入应用对象
    2. 注入事件对象
    3. 注入路由集合对象
    4. 注入路由对象
    5. 将各中间件注入到路由对象
获取 Request 对象
$request = IlluminateHttpRequest::capture()

主要过程:
    1. 委托SymfonyComponentHttpFoundationRequest组件,并注入全局变量(封装成相应的对象),创建基础请求对象
    2. 通过基础请求对象创建 $request
处理 Request 对象,返回 Response 对象 Laravel Kernel实例化后的处理 Laravel Kernel引导流程分析 Laravel 中间件 Laravel 路由处理 Laravel 响应准备 Laravel 路由执行
$response = $kernel->handle(
    $request = IlluminateHttpRequest::capture()
);

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

主要过程:
    1. 获取中间件,并尝试触发每个中间件的 terminate 方法
    2. 触发 terminate 的事件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22597.html

相关文章

  • 深度挖掘 Laravel 生命周期

    摘要:引导程序包括完成环境检测配置加载异常处理注册服务提供者注册启动服务这六个引导程序。处理请求请求处理发生在内核的方法内。发送响应头部信息发送报文主题终止程序程序终止,完成终止中间件的调用终止中间件以上便是的请求生命周期的始末。 本文首发于个人博客 深度挖掘 Laravel 生命周期,转载请注明出处。 这篇文章我们来聊聊 「Laravel 生命周期」 这个主题。虽然网络上已经有很多关于这个...

    arashicage 评论0 收藏0
  • Laravel 请求生命周期

    摘要:应用实例所依赖的服务提供者可以在配置文件中的节点找到。完成所有服务提供者注册到应用实例后,应用实例执行启动方法引导项目启动。或内核接收到请求,加载服务提供者,同时,将请求分发给路由器执行。 这是一篇翻译文章,原文 Request Life Cycle of Laravel,译文 Laravel 请求生命周期 首发于个人博客,转载请注明出处。 当需要使用一个框架、工具或者服务时,在使用前...

    junfeng777 评论0 收藏0
  • Laravel学习:请求到响应的生命周期

    摘要:请求处理阶段请求处理阶段首先是准备请求处理的环境,包括环境加载服务提供者注册等环节,然后将请求实例通过中间件处理及通过路由和控制器的分发控制,使得不同的请求通过相应的处理程序进行处理并生成响应的过程。 Laravel请求到响应的整个执行过程,主要可以归纳为四个阶段,即程序启动准备阶段、请求实例化阶段、请求处理阶段、响应发送和程序终止阶段。 程序启动准备阶段 服务容器实例化 服务容器的实...

    OBKoro1 评论0 收藏0
  • 使用 Swoole 加速 Laravel

    摘要:因为为单个请求创建的环境将在请求过程完成后立即销毁。可以成为强大的性能增强器,提供了优雅的结构和代码使用方式。你可以使用此命令快速安装它,并访问官方网站获取更多信息。注意目前仅支持和。服务器不能使用。基准测试使用进行干净的测试。 Swoole 是针对PHP的生产级异步编程框架。它是一种用纯C语言编写的PHP扩展,它使PHP开发人员能够在PHP中编写高性能,可扩展的并发TCP,UDP,U...

    didikee 评论0 收藏0
  • 了解swoole运行模式,加速laravel应用

    摘要:负责解释执行文件生成响应,最终返回给,展现至前端。相比于传统架构,进程模型最大的特点在于其多线程模式处理网络请求,使得其能轻松应对大量连接。这要求开发人员对于多进程的运行模式有更清晰的认识更容易内存泄露。 一、SwooleSwoole号称重新定义了PHP,它是一个PHP扩展,使得PHP可以使用异步的方式执行,就像node一样,而且还能使用socket,为PHP提供了一系列异步IO、事件...

    时飞 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<