Request的生命周期


概述

Laravel中的request的生命周期相当简单。当一个request进入到你应用程序时,它被调度到适当的路由或控制器。从该路由输出的response将返回到浏览器并显示在屏幕上。有时你想在路由执行之前或后做一些其他处理。有几种办法可以达到该目的,其中两种办法是"start"文件和应用程序事件。

启动文件

应用程序的启动文件被存放在app/start目录中。默认情况下,该目录下包含三个文件:global.phplocal.phpartisan.php文件。需要获取更多关于artisan.php的信息,可以参考文档Artisan 命令行。

global.php启动文件默认包含一些基本项目,例如Logger的注册以及载入app/filters.php 文件。然而,你可以在该文件里做任何你想做的事情。无论在什么环境下,它都将会被自动包含进_每一个_request中。而local.php 文件仅在local环境下被执行。获取更多关于环境的信息,请查看文档 配置。

当然,如果除了local环境你还有其他环境的话,你也可以为针对这些环境创建启动文件。这些文件将在应用程序运行在该环境中时被自动包含。

应用程序事件

你还可以通过注册 beforeafterclosefinishshutdown应用程序事件以便在处理request之前或后做一些操作:

注册应用程序事件

App::before(function($request)
{
    //
});

App::after(function($request, $response)
{
    //
});

上述事件的监听器将会在每个request 之前(before)之后(after)运行 。