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