第三天:探索 Laravel 的目录结构
Laravel 是一个优雅的 PHP 框架,旨在简化现代 Web 应用程序的开发。当您创建一个新的 Laravel 项目时,它带有一个组织良好的目录结构,鼓励最佳实践和明确的关注点分离。让我们深入了解主要目录及其用途。
Laravel 目录结构概述
全新安装的 Laravel 包含以下关键目录:
project-root/ |-- app/ |-- bootstrap/ |-- config/ |-- database/ |-- public/ |-- resources/ |-- routes/ |-- storage/ |-- tests/ |-- vendor/
1. app/ 目录
这是应用程序的核心,大部分逻辑都驻留在此。app/ 目录包含各种应用程序组件的子文件夹:
控制台/:包含自定义 Artisan 命令。
事件/:定义您的应用程序可以监听的事件。
Exceptions/:处理异常和自定义错误报告。
网址/:
控制器/:容纳应用程序的控制器。
Middleware/:存储用于过滤 HTTP 请求的中间件。
Models/:Eloquent 模型的默认位置。
Observers/:保存用于处理模型事件的观察者类。
Policies/:包含特定模型的授权逻辑。
Providers/:存储引导应用程序各个部分的服务提供商。
2. bootstrap/ 目录
此目录包含应用程序的初始引导文件。这里最值得注意的文件是 app.php,它初始化 Laravel 框架。
此外,它还包含一个 cache/ 文件夹,用于存储框架生成的缓存文件以提高性能。
3. config/ 目录
顾名思义,此目录包含应用程序的所有配置文件。这些文件允许您管理服务、数据库连接、邮件、缓存等的设置。例如:
app.php 用于核心应用程序设置。
database.php 用于数据库配置。
mail.php 用于电子邮件服务设置。
4. database/ 目录
该目录管理所有与数据库相关的文件:
工厂/:包含用于播种测试数据的工厂类。
migrations/:存储用于定义数据库模式的迁移文件。
seeders/:包含用于用样本数据填充数据库的种子。
5. public/ 目录
此目录是 Web 请求的入口点,包含应用程序的前端文件。主要内容包括:
index.php:处理所有传入请求的主文件。
静态资产,例如图像、CSS 和 JavaScript 文件。
6. resources/ 目录
此目录存储将被编译或用于生成视图的应用程序资源。子目录包括:
views/:包含应用程序前端的 Blade 模板文件。
lang/:保存用于本地化的语言文件。
css/ 和 js/(在 sass/ 和 js/ 内):CSS 和 JavaScript 资产的默认文件夹。
7. routes/ 目录
这是应用程序的路由逻辑所在的位置。Laravel 为不同的路由类型提供了单独的文件:
web.php:处理 Web 请求的路由(通常带有会话和 cookie)。
api.php:处理 API 请求的路由(无状态)。
console.php:定义自定义 Artisan 命令。
channels.php:定义事件广播频道。
8. storage/ 目录
该目录包含您的应用程序和框架本身生成的文件:
app/:存储应用程序生成的文件。
framework/:存储框架缓存、会话和编译的视图。
logs/:包含用于调试和错误跟踪的日志文件。
9. tests/ 目录
所有应用程序测试都存储在此处。默认情况下,它包含功能和单元测试的目录:
功能/:评估整个应用程序堆栈的功能的测试。
Unit/:验证特定功能或类的测试。
10. vendor/ 目录
此目录包含通过 Composer 安装的所有第三方软件包。您永远不应直接修改此文件夹。
如何导航结构
在 Laravel 中开发时,了解每个目录的用途有助于你逻辑地组织代码。例如:
管理目录结构的技巧
遵循 Laravel 约定:Laravel 具有预定义的结构是有原因的 - 除非绝对必要,否则请坚持它。
使用子文件夹实现可扩展性:对于较大的项目,请考虑在控制器或模型内创建子文件夹来对相关文件进行分组。
利用 artisan 命令:使用 php artisan make:model、php artisan make:controller 等命令自动将文件放置在正确的位置。
通过掌握 Laravel 的目录结构,您将有信心有效地导航、维护和扩展您的项目。请继续关注第 4 天,我们将深入研究如何配置 Laravel 以满足您的开发需求!