声明周期概述#

开始#

public/index.php 文件是所有对Laravel应用程序的请求的入口点。而所有的请求都是经由你的Web服务器(Apache/Nginx)

通过配置引导到这个文件。index.php 文件不包含太多的代码,却是加载框架的起点。

index.php 问价加载Composer生成定义的自动加载器,然互从bootstrap/app.php脚本中检索Laravel应用程序的实例。

Laravel本身采取的第一个动作是创建一个application/service container的实例。

HTTP / 控制器内核#

接下来,根据进入应用的程序大的请求类型来将传入的请求发送到HTTP内核或控制台内核。而这两个内核是用来作为所有

请求都要通过的中心位置。现在,我们先看看位于 app/Http/Kernel.php中的HTTP内核。

HTTP内核继承了 Illuminate\Foundation\Http\Kernerl类,他定义了在执行请求之前运行的bootstrappers数组。这个数组

负责在实际处理请求之前完成这些内容:配置错误处理、配置日志记录、检测应用程序环境以及执行其他需要完成的任务。

HTTP内核还定义了所有请求被应用程序处理之前必须经过的HTTP中间件的列表。这些中间件处理HTTP会话的读写。

确定应用程序是否处于维护模式、验证CSRF令牌等。

HTTP内核的handle方法的方法签名非常简单:接收Request 并返回 Response。可以把内核当做是代表整个应用

程序的大黑盒,给他HTTP请求,他就返回HTTP相应。

服务提供器#

最重要的内核引导操作之一是加载应用程序的服务提供器。引用程序的所有服务提供器都在config/app.php配置文件的

providers 数组中配置。首先,所有提供器都会调用register方法,接着,由 boot方法负责调用所有被注册提供器。

服务器负责引导所有框架的各种组件,如数据库、队列、验证和路由文件。也就是说,框架提供的每个功能

都由他们来引导并配置。因此也可以说,服务提供器是整个Laravel引导过程中最重要的方面。

分配请求#

一旦引导了引用程序且注册所有服务器提供器,Request请求就会被转交给路由器来进行调度。路由器将请求发送到路由

或控制器或任何运行与路由的特定中间件。

聚焦服务提供器#

服务提供器引导Laravel应用程序真正的关键。创建应用程序实例、注册服务提供器,并请求交给被引导的

应用程序。

Laravel的请求声明周期的更多相关文章

  1. laravel中的$request对象构造及请求生命周期

    laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...

  2. Django-分页、中间件和请求的声明周期

    一.分页 相关连接:https://www.cnblogs.com/kongzhagen/p/6640975.html 一.Django的分页器(paginator) 1.view.py 视图 fro ...

  3. 我所理解的 Laravel 请求 生命周期

    转载自:https://laravel-china.org/topics/3343/my-understanding-of-the-laravel-request-life-cycle 当你使用一个工 ...

  4. [原创]java WEB学习笔记31:会话与状态管理 session机制 概述(定义,session机制,session的声明周期,保存session的方式,Session的创建与删除)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. 01_4_SERVLET声明周期

    01_4_SERVLET声明周期 1. Servlet的生命周期 生命全过程 加载ClassLoader 实例化 new //客户端第一次请求的时候,只new一次 初始化init(ServletCon ...

  6. Vue的项目搭建及请求生命周期

    目录 Vue的项目搭建及请求生命周期 Vue-CLI的项目搭建 环境搭建 项目创建 pycharm运行Vue项目 Vue项目的大体结构 Vue的请求生命周期 两个小用法 Vue的项目搭建及请求生命周期 ...

  7. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  8. Vue 引出声明周期 && 组件的基本使用

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  9. C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)

    本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...

随机推荐

  1. 傻瓜式教程--实现登录页面的验证码以及验证(VUE)

    做成之后就 是这个样子 接下来上代码创建一个组件.显示验证码图片 <template> <div class="s-canvas"> <canvas ...

  2. 抓取B站小视频

    抓取B站小视频的代码如下: #请求库import requests #请求头部信息(用户代理)headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; ...

  3. netbeans7.4 在项目内查找 快捷键 ctrl shift f

  4. xinetd服务管理

    xinetd服务的管理文件都放在 /etc/xinetd.d目录内,我们可以编辑这个目录内的服务文件来开启和关闭服务.每个服务文件都有disable 这个行,如果把值改成yes就是禁用服务,如果是no ...

  5. P1561 [USACO12JAN]爬山Mountain Climbing

    P1561 [USACO12JAN]爬山Mountain Climbing 题目描述 Farmer John has discovered that his cows produce higher q ...

  6. 一个基于swoole的作业调度组件,已经实现了redis和rabitmq队列消息存储。

    https://github.com/kcloze/swoole-jobs 一个基于swoole的作业调度组件,已经实现了redis和rabitmq队列消息存储.参考资料:swoole https:/ ...

  7. 微信小程序--底部tab样式修改

    tab图标个数是最少2个,最多5个 主题默认是默认的浅灰色线条 修改后(只有black和white两种样式修改) 在app.json中

  8. Redhad的开源Paas平台:OpenShift

    参考redHat的官方文章翻译而来:https://openshift.redhat.com/community/wiki/architecture-overview OpenShift Origin ...

  9. JavaScript字符串、数组、对象方法总结

    字符串方法 示例字符串: const str = "hello,kitty,hello,vue "; 一.基本方法 charAt(n) 返回指定索引的字符 charCodeAt(n ...

  10. Direct2D 第4篇 渐变画刷

    原文:Direct2D 第4篇 渐变画刷 #include <windows.h> #include <d2d1.h> #include <d2d1helper.h> ...