<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Laravel之请求(Request)的生命周期、启动文件、应用程序事件App::before、after、finish、shutdown" id="card1">
<p> 游客</p><p>
标题:Laravel之请求(Request)的生命周期、启动文件、应用程序事件App::before、after、finish、shutdown<br/>
正文:<br/>
请求的生命周期发送给应用程序的所有请求都经由 public/index.php 脚本处理。如果使用的是 Apache 服务器，Laravel中包含的 .htaccess 文件将对所有请求进行处理并传递给 index.php。这是Laravel从接受客户端请求到返回响应给客户端的整个过程的开始。若能对于Laravel的引导过程(bootstrap process)有一个大致的认识，将有助于理解框架，我们不妨先讨论这个。到目前为止，学习Laravel引导过程所需掌握的最重要的概念就是 服务提供器。打开 app/config/app.php 配置文件，找到 providers 数组，你会发现一个服务提供器的列表。这些提供器充当了Laravel的主要引导机制。在我们深入服务提供器之前，先回到 index.php的讨论。当一个请求进入 index.php 文件，bootstrap/start.php 文件会被加载。这个文件会创建一个 Laravel Application 对象，该对象同时作为框架的 IoC 容器。Application 对象创建完成后，框架会设置一些路径信息并运行 环境检测 。然后会执行位于Laravel源码内部的引导脚本，并根据你的配置文件设置时区、错误报告等其他信息。除了配置这些琐碎的配置选项以外，该脚本还会做一件非常重要的事情：注册所有为应用程序配置的服务提供器。简单的服务提供器只包含一个方法：register。当应用程序对象通过自身的 register 方法注册某个服务提供器时，会调用该服务提供器的 register 方法。服务提供器通过这个方法向 IoC 容器 注册一些东西。从本质上讲，每个服务提供器都是将一个或多个 闭包 绑定到容器中，你可以通过这些闭包访问绑定到应用程序的服务。例如，QueueServiceProvider 注册了多个闭包以便使用与 队列 相关的多个类。当然，服务提供器并不局限于向IoC容器注册内容，而是可以用于任何引导性质的任务。服务提供器可以注册事件监听器、视图合成器、Artisan命令等等。在注册完所有服务提供器后，app/start 下的文件会被加载。最后，app/routes.php 文件会被加载。一旦 routes.php 文件被加载，Request 对象就被发送给应用程序对象，继而被派发到某个路由上。我们总结一下：<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1869&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1869&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1869&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1869&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1869&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1869">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1869">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>