Laravel - 应用程序结构
Laravel 中的应用程序结构基本上是项目中包含的文件夹、子文件夹和文件的结构。在 Laravel 中创建项目后,我们将获得应用程序结构的概览,如下图所示。
此处显示的快照指的是 Laravel 的根文件夹,即 laravel-project。它包括各种子文件夹和文件。下面给出了文件夹和文件的分析及其功能方面 −
App
它是应用程序文件夹,包含项目的整个源代码。它包含事件、异常和中间件声明。 app 文件夹包含各种子文件夹,如下所述 −
Console
Console 包含 Laravel 所需的 artisan 命令。它包含一个名为 Commands 的目录,其中所有命令都使用适当的签名声明。文件 Kernal.php 调用 Inspire.php 中声明的命令。
如果我们需要在 Laravel 中调用特定命令,那么我们应该在此目录中进行适当的更改。
Events
此文件夹包含项目的所有事件。
事件用于触发活动、引发错误或必要的验证并提供更大的灵活性。 Laravel 将所有事件保存在一个目录下。包含的默认文件是 event.php,其中声明了所有基本事件。
Exceptions
此文件夹包含处理异常所需的所有方法。它还包含处理所有异常的文件 handle.php。
Http
Http 文件夹包含用于控制器、中间件和应用程序请求的子文件夹。由于 Laravel 遵循 MVC 设计模式,此文件夹包含为特定目录定义的模型、控制器和视图。
Middleware 子文件夹包含中间件机制,包括过滤机制以及响应与请求之间的通信。
Requests 子文件夹包含应用程序的所有请求。
Jobs
Jobs 目录维护为 Laravel 应用程序排队的活动。基类在所有作业之间共享,并提供一个中心位置将它们放在一个屋檐下。
侦听器
侦听器依赖于事件,它们包含用于处理事件和异常的方法。例如,声明的 login 事件包含 LoginListener 事件。
策略
策略是包含授权逻辑的 PHP 类。Laravel 包含一项功能,可在此子文件夹内的策略类中创建所有授权逻辑。
提供程序
此文件夹包含注册核心服务器事件和配置 Laravel 应用程序所需的所有服务提供商。
Bootstrap
此文件夹包含所有应用程序引导脚本。它包含一个名为 cache 的子文件夹,其中包含与缓存 Web 应用程序相关的所有文件。您还可以找到文件 app.php,该文件初始化引导所需的脚本。
配置
config 文件夹包含 Laravel 应用程序顺利运行所需的各种配置和相关参数。配置文件夹中包含的各种文件如下图所示。文件名根据与它们相关的功能工作。
数据库
顾名思义,此目录包含数据库功能的各种参数。它包括以下三个子目录 −
Seeds − 其中包含用于单元测试数据库的类。
Migrations − 此文件夹有助于查询迁移 Web 应用程序中使用的数据库。
Factories − 此文件夹用于生成大量数据记录。
Public
它是根文件夹,有助于初始化 Laravel 应用程序。它包括以下文件和文件夹 −
.htaccess − 此文件提供服务器配置。
javascript 和 css −这些文件被视为资产。
index.php − 此文件是初始化 Web 应用程序所必需的。
Resources
Resources 目录包含可增强 Web 应用程序的文件。此目录中包含的子文件夹及其用途如下所述 −
assets − assets 文件夹包含 LESS 和 SCSS 等文件,这些文件是设置 Web 应用程序样式所必需的。
lang − 此文件夹包含本地化或内部化的配置。
views −视图是与最终用户交互并在 MVC 架构中发挥主要作用的 HTML 文件或模板。
请注意,资源目录将被扁平化,而不是具有资产文件夹。 相同的图形表示如下所示 −
存储
这是存储 Laravel 项目运行时经常需要的所有日志和必要文件的文件夹。此目录中包含的子文件夹及其用途如下所示 −
app − 此文件夹包含连续调用的文件。
framework −它包含经常调用的会话、缓存和视图。
日志 − 所有异常和错误日志都在此子文件夹中跟踪。
测试
所有单元测试用例都包含在此目录中。测试用例类的命名约定是 camel_case,并遵循类功能的约定。
供应商
Laravel 完全基于 Composer 依赖项,例如安装 Laravel 设置或包含第三方库等。Vendor 文件夹包含所有 Composer 依赖项。
除了上述文件外,Laravel 还包括一些其他文件,这些文件在 GitHub 配置、包和第三方库等各种功能中发挥主要作用。
应用程序结构中包含的文件如下所示 −