声明周期概述#

开始#

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. react前端自动化webpack配置

    1. npm init2. package.json install dependence webpack webpack-dev-server react react-dom react-hot-l ...

  2. 关于CE的反思

    当你注视着你的分数, 眼眶倏地猛睁. 不会做的题血红一片, 认真做了的题一点墨蓝. 你知道, 你CE了, 你挂了, 你倒数第一了, 你当场去世了. 两小时的努力付诸东流, 线段树的碎片历历在目. 思考 ...

  3. C++怎么读入非文本文件中的内容

    C++怎么读入非文本文件中的内容 3条回答 #include <io.h> #include <windows.h> void main() { char* pFileName ...

  4. LintCode_44 最小子数组

    题目 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 注意事项 子数组最少包含一个数字 样例 给出数组[1, -1, -2, 1],返回 -3 思路 动态规划解决 C++代码 int m ...

  5. Oracle中函数如何返回结果集

    在Oracle中,用函数返回结果集有时候要用到,下面是demo: 1 2 3 4 5 6 7 create or replace type t_test as object ( id integer, ...

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

  7. linux环境变量设置命令

    1echo $ <变量名> //显示某个环境变量 2env     // environment (环境) 的简写,列出来所有的环境变量 3set     //显示所有本地定义的Shell ...

  8. MaxCompute问答整理之7月

    本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文.希望对大家有所帮助. 问题一.DataWorks V2.0简单模式和标准模式的区别?公司数仓的数据上云 ...

  9. c++ 进制转换函数

    转自:https://blog.csdn.net/wangjunchengno2/article/details/78690248 strtol 函数: 它的功能是将一个任意1-36进制数转化为10进 ...

  10. IIS 配置问题

    1 IIS错误需要重新运行配置 重新注册.netframework. 解决方式:cmd   C:\Windows\Microsoft.NET\Framework\v4.0.30319 aspnet_r ...