Laravel 应用结构是怎么样的?

文章导读
Previous Quiz Next Laravel 中的应用结构基本上就是项目中包含的文件夹、子文件夹和文件的结构。一旦我们在 Laravel 中创建了一个项目,就会看到如图所示的应用结构概览。
📋 目录
  1. App
  2. Bootstrap
  3. Config
  4. Database
  5. Public
  6. Resources
  7. Storage
  8. Tests
  9. Vendor
A A

Laravel - 应用结构



Previous
Quiz
Next

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

这里展示的快照指的是 Laravel 的根文件夹,即 laravel-project。它包含各种子文件夹和文件。下面给出了文件夹和文件的分析,以及它们的功能方面 −

Root Directory

App

这是应用文件夹,包含项目的全部源代码。它包含 events、exceptions 和 middleware 的声明。app 文件夹包含各种子文件夹,如下所述 −

Console

Console 包含 Laravel 所需的 artisan commands。它包含一个名为 Commands 的目录,其中所有命令都带有适当的签名进行声明。文件 Kernal.php 调用在 Inspire.php 中声明的命令。

Console

如果需要在 Laravel 中调用特定命令,则应在此目录中进行相应更改。

Events

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

Events

Events 用于触发活动、引发错误或必要的验证,并提供更大的灵活性。Laravel 将所有 events 保存在一个目录下。默认包含的文件是 event.php,其中声明了所有基本 events。

Exceptions

此文件夹包含处理 exceptions 所需的所有方法。它还包含文件 handle.php,用于处理所有 exceptions。

Http

Http 文件夹包含 controllers、middleware 和应用 requests 的子文件夹。由于 Laravel 遵循 MVC 设计模式,此文件夹包含为特定目录定义的 model、controllers 和 views。

Middleware 子文件夹包含 middleware 机制,包括过滤器机制以及 response 和 request 之间的通信。

Requests 子文件夹包含应用的所有 requests。

Jobs

Jobs 目录维护 Laravel 应用排队的活动。所有 Jobs 共享一个基类,并提供一个集中位置将它们置于同一屋檐下。

Listeners

Listeners 依赖于 events,它们包含用于处理 events 和 exceptions 的方法。例如,声明的 login event 包含一个 LoginListener event。

Policies

Policies 是包含授权逻辑的 PHP classes。Laravel 提供了一个功能,可以在此子文件夹内的 policy classes 中创建所有授权逻辑。

Providers

此文件夹包含注册核心服务器 events 以及配置 Laravel 应用所需的所有 service providers。

Bootstrap

此文件夹包含所有应用 bootstrap 脚本。它包含一个名为 cache 的子文件夹,其中包含与缓存 web 应用相关的所有文件。您还可以找到文件 app.php,它初始化 bootstrap 所需的脚本。

Config

config 文件夹包含 Laravel 应用顺利运行所需的各种配置和相关参数。config 文件夹中包含的各种文件如图所示。文件名根据其相关功能工作。

Config-folder

Database

顾名思义,此目录包含数据库功能所需的各种参数。它包含以下三个子目录 −

  • Seeds − 包含用于单元测试数据库的 classes。

  • Migrations − 此文件夹有助于 web 应用中使用的数据库迁移查询。

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

Public

这是用于初始化 Laravel 应用的根文件夹。它包含以下文件和文件夹 −

  • .htaccess − 此文件提供服务器配置。

  • javascript and css − 这些文件被视为 assets。

  • index.php − 此文件用于初始化 web 应用。

Resources

Resources 目录包含增强您的 web 应用的文件。此目录中包含的子文件夹及其用途如下所述 −

  • assets − assets 文件夹包含 LESS 和 SCSS 等文件,这些文件用于样式化 web 应用。

  • lang − 此文件夹包含本地化或国际化配置。

  • views − Views 是与最终用户交互的 HTML 文件或模板,在 MVC 架构中扮演主要角色。

请注意,resources 目录将被展平,而不是包含 assets 文件夹。 其示意图如下所示 −

Resource Directory Changes

Storage

这是存储所有日志和必要文件的文件夹,这些文件在 Laravel 项目运行时经常需要。此目录中包含的子文件夹及其用途如下 −

  • app − 此文件夹包含按顺序调用的文件。

  • framework − 它包含经常调用的 sessions、cache 和 views。

  • Logs − 所有异常和错误日志都在此子文件夹中跟踪。

Tests

此目录包含所有单元测试用例。测试类命名约定为 camel_case,并遵循类功能相应的约定。

Vendor

Laravel 完全基于 Composer dependencies,例如安装 Laravel 环境或包含第三方库等。Vendor 文件夹包含所有 composer dependencies。

除了上述文件外,Laravel 还包含一些其他文件,这些文件在各种功能中扮演主要角色,例如 GitHub 配置、packages 和第三方库。

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

Files