【发布时间】:2017-09-07 11:39:47
【问题描述】:
什么是 Laravel 中的 Bootstrapping,它是如何工作的?
【问题讨论】:
标签: laravel laravel-5 bootstrapping
什么是 Laravel 中的 Bootstrapping,它是如何工作的?
【问题讨论】:
标签: laravel laravel-5 bootstrapping
我会尽力简化 Laravel 的 Bootstrapping 过程。 在我们关注引导过程之前需要了解一些术语:
服务容器 - 包含可在您的应用程序中使用的不同组件
Facades - Laravel 有很多特性和助手。例如有关 URL、响应、路由、会话、请求等的帮助程序。这些被加载到服务容器中。 Facsdes 使得无需通过服务容器即可访问这些功能成为可能,并且可以直接访问。
中间件 - 是在每个请求上执行的代码。例如,设置会话。 cookie加密等。每个请求都需要中间件。
服务提供者 - 是您的应用程序所需的类。这些不会在每个请求上加载,而是仅在实际需要它们提供的服务时加载。
Kernel - 负责加载所有的中间件、服务提供者
当请求一个网页时,请求首先转到 index.php。这个文件做了非常重要的事情。首先,它会自动加载应用程序中使用的所有类。
之后,它会设置 laravel 应用程序,即 laravel 框架。 laravel 框架做的第一件事就是——它创建了服务容器。此时服务容器为空。
在该框架创建内核之后。内核加载应用程序所需的所有中间件。内核最重要的任务之一是加载所有服务提供者,即将所有组件加载到服务容器中。
加载的所有服务提供者的列表都在 config/app.php 文件中,即 providers 数组。这个数组定义了哪些组件被加载到你的服务容器中。
这些组件可以通过外观访问。所有门面的列表也以别名数组的形式出现在 config/app.php 中。这些外观只是加载到服务容器中的所有组件的捷径。这样就完成了引导过程。
在这一切之后,请求然后被移交给路由器,即 routes/web.php 文件。
【讨论】:
引导是 Laravel 将框架中的必要位组合在一起以能够处理和处理系统抛出的功能的过程。
在 bootstrap 文件夹中,您会找到一些文件:autoload.php - 加载并包含 composer,以便加载任何包。services.php - 将提供程序存储在应用程序中以更快地加载系统。 app.php - 加载并初始化应用程序。
如上所述,所有这些都可以在网上轻松发现。
【讨论】:
在处理请求之前,必须设置 Laravel 应用程序的某些依赖项或部分。这些部分允许按照应用程序的预期处理请求,并允许适当地生成响应。引导是设置所有这些东西的过程。
在service providers documentation 的一些技术术语中,“服务提供者”是用于指代不同类(具有预定义结果的代码块)的名称,这些类将用于注册和引导 Laravel 应用程序正常工作所需的功能。
【讨论】: