codecamp

生命周期概要

首要之事

public/index.php 这个文件是对 Laravel 应用程序所有请求的进入点。所有的请求都通过您网页服务器(Apache / Ngix)的配置导向这个文件。 index.php 这个文件并没有太多的代码。更确切地说,它只是个起始点,用来加载框架其他的部分。

index.php 加载由 Composer 产生的自动加载器定义,并接收由 bootstrap/app.php 文件所产生的 Laravel 应用程序实例。Laravel 自身的第一个动作就是创建一个应用程序 / 服务容器的实例。

HTTP / 终端核心

接下来,进入应用程序的请求的会被送往 HTTP 核心或终端核心,视该请求的种类而定。这两种核心是所有请求流向的中心位置。现在开始,我们只将焦点放在 HTTP 核心,它位于 app/Http/Kernel.php。

HTTP 核心扩展了 Illuminate\Foundation\Http\Kernel 类,它定义了一个 bootstrappers 数组,在请求被执行前会执行。这些启动器(bootstrappers)会进行配置错误处理,日志记录,侦测应用程序环境,以及其他在请求真正被处理之前,需要完成的工作。

HTTP 核心也定义了一份 HTTP 中间件清单,所有的请求在被应用程序处理之前都必须经过它们。这些中间件有负责处理 HTTP session 的读写,决定应用程序是否处于维护模式,查验跨站请求伪造(CSRF)标记,以及其他更多的功能。

HTTP 核心 handle 方法的方法签名相当简单:它接收一个 Request 并返回一个 Response。把核心想像成一个大的黑盒子,用来代表你整个的应用程序。对它输入 HTTP 请求,它将返回 HTTP 响应。

服务提供者

最重要的核心启动行为之一,是加载您的应用程序的服务提供者。所有应用程序的服务提供者,都在 config/app.php 配置文件的 providers 数组中被配置。首先,对所有的提供者调用 register 方法,一旦所有的提供者都被注册之后,boot 方法也会被调用。

请求分派

当应用程序启动且所有的服务提供者都被注册之后,Request 将被移转给路由器进行分派。路由器会将请求分派给路由或控制器,并执行任何特定路由的中间件。

Facade 类参考
聚焦于服务提供者
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

环境配置

系统服务

哈希

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }