Laravel 应用程序结构


Laravel的应用程序结构基本上是文件夹的结构, 子文件夹和文件包含在一个项目中. 一旦我们在Laravel中创建了一个项目, 我们就会得到一个应用结构的概述, 如图所示.

这里显示的快照是指Laravel的根文件夹即laravel-project,它包括各种子文件夹和文件,文件夹和文件的分析, 以及它们的功能方面如下所示:

Root Directory

App


它是应用程序文件夹,包含项目的整个源代码,它包含事件、异常和中间件声明,app 文件夹包含各种子文件夹,解释如下:

Console

Console包括Laravel所需的artisan命令,它包括一个名为Commands的目录,其中所有的命令都被声明了相应的签名,文件Kernal.php调用Inspire.php中声明的命令。

Console

如果我们需要在 Laravel 中调用特定的命令,那么我们应该在这个目录中进行适当的更改。

Events

此文件夹包含项目的所有事件。

Events

事件是用来触发活动, 提出错误或必要的验证,并提供更大的灵活性。Laravel将所有的事件放在一个目录下。默认包含的文件是event.php,所有的基本事件都在这里声明。

Exceptions

这个文件夹包含了处理异常所需的所有方法,它还包含处理所有异常的文件handle.php

Http

Http文件夹包含控制器、中间件和应用程序请求的子文件夹。由于 Laravel 遵循 MVC 设计模式,此文件夹包含为特定目录定义的模型、控制器和视图。

Middleware子文件夹包括中间件机制,包括过滤机制和响应和请求之间的通信。

Requests子文件夹包含应用程序的所有请求。

Jobs

Jobs目录维护着Laravel应用程序的活动队列,所有的Jobs都继承同一个父类,并提供了同一个位置来放置它们。

Listeners

监听器是依赖于事件的,它们包括用来处理事件和异常的方法。例如,login事件包函一个LoginListener事件。

Policies

策略是包含授权逻辑的 PHP 类,Laravel 包含一个功能,可以在此子文件夹内的策略类中创建所有授权逻辑。

Providers

该文件夹包含为核心服务器注册事件和配置 Laravel 应用程序所需的所有服务提供者。

Bootstrap


这个文件夹包含了所有的应用程序引导脚本,它包含一个子文件夹,即cache,它包括所有与网络应用程序缓存相关的文件,你还可以找到app.php文件,它初始化了引导所需的脚本。

Config


config文件夹包含 Laravel 应用程序顺利运行所需的各种配置和相关参数,config 文件夹中包含的各种文件如下图所示,文件名按照与它们关联的功能工作。

Config-folder

Database


顾名思义,该目录包含数据库功能的各种参数,它包括三个子目录,如下所示:

  • Seeds: 这包含用于单元测试数据库的类。

  • Migrations: 此文件夹有助于查询迁移 Web 应用程序中使用的数据库。

  • Factories: 该文件夹用于生成大量数据记录。

Public


它是帮助初始化 Laravel 应用程序的根文件夹,它包括以下文件和文件夹:

  • .htaccess: 这个文件给出了服务器配置。

  • javascript 和 css: 这些文件被视为资产。

  • index.php: 这个文件是web应用程序初始化所必需的。

Resources


资源目录包含增强你的 Web 应用程序的文件,该目录下的子文件夹及其用途说明如下:

  • assets: assets 文件夹中包含了 LESS 和 SCSS 等文件,这些文件是 Web 应用程序样式所必需的。

  • lang: 此文件夹包含本地化或内化的配置。

  • views: 视图是与最终用户交互并在 MVC 架构中起主要作用的 HTML 文件或模板。

观察到资源目录将被扁平化,而不是拥有资产文件夹。 其图示如下:

Resource Directory Changes

Storage


这是保存 Laravel 项目运行时经常需要的所有日志和必要文件的文件夹。该目录下的子文件夹及其用途如下:

  • app: 该文件夹包含连续调用的文件。

  • framework: 包含会话、缓存和频繁调用的视图。

  • Logs: 所有异常和错误日志都在这个子文件夹中进行跟踪。

Tests


所有的单元测试用例都包含在这个目录中,命名测试用例类的驼峰命名法(camel_case)命名,并根据类的功能遵循该惯例。

Vendor


Laravel 完全基于 Composer 依赖,例如安装 Laravel 设置或包含第三方库等,Vendor 文件夹包含所有 Composer 依赖项。

除了上面提到的文件,Laravel 还包含一些其他文件,它们在各种功能中发挥主要作用,例如 GitHub 配置、包和第三方库。

应用结构中包含的文件如下所示:

Files