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