Laravel请求的生命周期(请求)
总结当工具使用在现实世界中,如果你了解该工具的工作原理,他们会更积极。同样是应用开发实现。当你理解如何开发工具,它将更容易使用。本文档的目的是提供一个高层次的概述,让你有一个良好的把握Laravel框架运行方式,更好地了解整个框架的框架后,不再显得那么神秘的组成和功能,和发展应使用更加得心应手。本文件包含请求的生命周期的一个高层次的概述,以及启动文件和应用程序事件的相关内容。
如果你不能同时理解所有的条件,不要灰心。在阅读其他文件的过程中,你可以粗略地掌握和积累知识。
请求的生命周期
所有的请求发送到应用程序的处理通过公共 /的index.php脚本。如果Apache服务器使用的.htaccess文件包含在Laravel将处理所有的请求并将其传递到index.php.this是接受客户端请求返回给客户端的响应Laravel的整个过程的开始。如果有一个大致的了解的laravel启动过程(启动过程),将有助于了解框架,我们不妨讨论这一。
到目前为止,你需要了解Laravel启动过程中最重要的概念是服务提供商。打开应用程序/配置/ app.php配置文件并找到供应商的阵列,你会找到一个列表的服务提供商,这些提供商作为Laravel的主要启动机制。深入为服务提供商之前,回到一个请求进入的index.php文件index.php.when讨论,引导 / start.php文件将被加载。这个文件创建一个laravel应用对象,这也是作为框架的IOC容器。
在应用程序对象被创建,该框架集的一些路径信息和运行环境的检测,然后在Laravel源代码启动脚本执行,和其他信息,如时区,错误报告,等等,是根据你的配置文件。除了配置这些琐碎的配置选项,脚本也会做一件很重要的事情:登记所有服务提供者的配置中的应用。
一个简单的服务提供者只包含一个方法:登记。当应用程序对象注册一个服务提供商通过自己的登记方法,服务提供者的登记方法被调用。服务提供商注册一些IOC容器通过这个方法。基本上,每一个服务提供商是绑定到一个或更多的封闭容器,和你可以访问都通过这些关闭绑定到应用服务。例如,queueserviceprovider寄存器多关闭使用的队列相关联的多个类。当然,服务提供商不仅限于IOC容器的内容,但它可以被用于任何任务,启动性能,服务提供商可以登记事件列表紧固件,查看合成器,工匠的命令,等等。
在所有的服务商注册,应用程序/启动下的文件将被加载。最后,应用程序/ routes.php文件将被加载。一旦routes.php文件被加载,请求对象发送到应用程序对象,然后发送到路由。
让我们总结一下:
要求进入公共 /的index.php文件。
引导/ start.php文件创建应用程序对象和检测环境。
内部框架/ start.php文件配置相关的设置和加载的服务提供商。
将文件加载到应用程序启动目录中。
加载应用程序的应用程序/ routes.php文件。
请求对象被发送到应用程序对象,应用程序对象返回到响应对象。
将响应对象发送回客户端。
你应该已经掌握了如何应用处理laravel发送请求。让我们来看看在启动文件。
启动文件
应用程序启动文件存储在应用程序/启动目录。默认情况下,该目录包含三个文件:global.php,local.php,和artisan.php文件。你要知道artisan.php的更多信息,你可以参考文档的工匠的命令行。
global.php默许默认的启动文件包含了一些基本的项目,如日志登记和加载的应用程序/ filters.php文件。然而,你可以在你想做的文件做任何事。无论在什么环境下,它会自动包含在_每_request.the local.php文件只有在本地环境中执行。关于环境的更多信息,请看文件配置。
当然,如果你除了对当地环境有其他的环境,你也可以创建这些环境启动文件。这些文件将自动包含在应用程序环境中运行。如果配置在引导 / start.php文件的开发环境,您可以创建一个应用程序 / /开始development.php文件。在这种环境下,任何进入应用程序的请求都包含文件。
存储在启动文件中的是什么
启动文件主要用于存储启动代码。例如,你可以登记视图合成,配置日志信息,或做一些PHP设置启动文件。你做什么取决于你。当然,把所有的启动代码到启动文件使大型应用程序的启动文件凌乱。,或启动文件太乱考虑一些启动代码到服务提供商。
应用程序事件
还可以通过在处理请求之前或之后注册之前、之后、结束和关闭应用程序事件来做一些操作:
注册应用程序事件
复制代码代码如下所示:
以前:(函数($请求))
{
});
应用程序:(函数($请求,$响应))
{
});
这些事件的侦听器在每个应用程序的请求处理之前(或之前)或之后(之后)运行。这些事件可用于设置全局筛选器(筛选器)或修改返回客户机的响应(响应)(对客户机的响应)。您可以在启动文件或服务提供者中注册这些事件。
当应用程序的响应被发送到客户机时,将触发终结事件。此事件适合处理应用程序所需的最终结束工作。当执行完所有事件的侦听器时,它们将立即触发关闭事件。如果您想在脚本结束之前做一些事情,这是最后一次机会,但在大多数情况下,您不需要使用这些事件。