- Laravel 教程
- Laravel - 首页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel - Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 数据库操作
- Laravel - 错误和日志
- Laravel - 表单
- Laravel - 国际化
- Laravel - 会话
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送邮件
- Laravel - Ajax
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - 门面
- Laravel - 合同
- Laravel - CSRF 保护
- Laravel - 认证
- Laravel - 授权
- Laravel - Artisan 控制台
- Laravel - 加密
- Laravel - 哈希
- 理解发布流程
- Laravel - 游客用户权限
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用资源
- Laravel - 快速指南
- Laravel - 有用资源
- Laravel - 讨论
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 应用程序排队的活动。所有作业共享基类,并提供一个中心位置将它们放在一个屋檐下。
Listeners
监听器依赖于事件,它们包含用于处理事件和异常的方法。例如,声明的 **login** 事件包含 **LoginListener** 事件。
Policies
策略是 PHP 类,其中包含授权逻辑。Laravel 包含一个功能,可以在此子文件夹内的策略类中创建所有授权逻辑。
Providers
此文件夹包含注册核心服务器事件并配置 Laravel 应用程序所需的所有服务提供者。
Bootstrap
此文件夹包含所有应用程序引导脚本。它包含一个名为 **cache** 的子文件夹,其中包含与缓存 Web 应用程序相关的所有文件。您还可以找到 **app.php** 文件,该文件初始化引导所需的脚本。
Config
**config** 文件夹包含 Laravel 应用程序顺利运行所需的各种配置和相关参数。config 文件夹中包含的各种文件如下面的图片所示。文件名根据其关联的功能起作用。
Database
顾名思义,此目录包含数据库功能的各种参数。它包含以下三个子目录:
**Seeds** - 这包含用于单元测试数据库的类。
**Migrations** - 此文件夹有助于查询 Web 应用程序中使用的数据库的迁移。
**Factories** - 此文件夹用于生成大量数据记录。
Public
它是帮助初始化 Laravel 应用程序的根文件夹。它包含以下文件和文件夹:
**.htaccess** - 此文件提供服务器配置。
**javascript 和 css** - 这些文件被视为资产。
**index.php** - 此文件是初始化 Web 应用程序所必需的。
Resources
Resources 目录包含增强 Web 应用程序的文件。下面解释了此目录中包含的子文件夹及其用途:
**assets** - assets 文件夹包含 LESS 和 SCSS 等文件,这些文件是为 Web 应用程序设置样式所必需的。
**lang** - 此文件夹包含本地化或国际化的配置。
**views** - 视图是与最终用户交互的 HTML 文件或模板,并在 MVC 架构中发挥主要作用。
请注意,resources 目录将被展平,而不是包含 assets 文件夹。下面显示了相同的图形表示:
Storage
这是存储所有日志和必要文件的文件夹,这些文件在 Laravel 项目运行时经常需要。下面给出此目录中包含的子文件夹及其用途:
**app** - 此文件夹包含依次调用的文件。
**framework** - 它包含经常调用的会话、缓存和视图。
**Logs** - 所有异常和错误日志都跟踪在此子文件夹中。
Tests
所有单元测试用例都包含在此目录中。测试用例类的命名约定为 **camel_case**,并遵循与类功能一致的约定。
Vendor
Laravel 完全基于 Composer 依赖项,例如安装 Laravel 设置或包含第三方库等。Vendor 文件夹包含所有 Composer 依赖项。
除了上述文件外,Laravel 还包含一些其他文件,这些文件在各种功能中发挥主要作用,例如 GitHub 配置、包和第三方库。
应用程序结构中包含的文件如下所示: