Laravel 目录结构解析

阅读:47 2025-03-21

Laravel 目录结构是其核心架构的一部分,理解它有助于更好地开发和组织代码。下面是 Laravel 主要目录及其作用的详细解析。


Laravel 目录结构概览

project_root/   # 项目根目录
│── app/        # 核心应用代码
│── bootstrap/  # 框架引导文件
│── config/     # 配置文件
│── database/   # 数据库迁移、模型工厂、种子文件
│── lang/       # 语言本地化文件
│── public/     # 入口文件和静态资源
│── resources/  # 视图、CSS、JS 资源
│── routes/     # 路由定义
│── storage/    # 缓存、日志、上传文件
│── tests/      # 测试文件
│── vendor/     # Composer 依赖
│── .env        # 环境变量配置
│── artisan     # Laravel 命令行工具
│── composer.json # Composer 依赖管理
│── package.json  # Node.js 依赖管理
│── server.php    # 内置 PHP 服务器

1. app/ (应用核心代码)

app/ 目录存放 Laravel 应用的核心代码,包含 MVC(Model-View-Controller)结构的核心部分。

app/
│── Console/    # 自定义 Artisan 命令
│── Exceptions/ # 异常处理
│── Http/       # 处理 HTTP 请求
│   ├── Controllers/ # 控制器
│   ├── Middleware/  # 中间件
│── Models/     # 数据模型 (Laravel 8+ 推荐放这里)
│── Providers/  # 服务提供者 (Service Providers)

主要子目录

  • Console/:定义自定义的 Artisan 命令 (php artisan make:command)

  • Exceptions/:应用异常处理类 (app/Exceptions/Handler.php)

  • Http/Controllers/:控制器文件 (php artisan make:controller)

  • Http/Middleware/:中间件 (php artisan make:middleware)

  • Models/:Eloquent 数据模型 (php artisan make:model)

  • Providers/:服务提供者,负责注册应用服务 (php artisan make:provider)


2. bootstrap/ (框架引导文件)

bootstrap/ 目录包含 Laravel 的引导文件和缓存内容。

bootstrap/
│── cache/    # 存放框架缓存文件,如 `config.php`
│── app.php   # Laravel 应用初始化文件

3. config/ (应用配置)

config/ 目录存放 Laravel 各种配置文件。

config/
│── app.php        # 应用程序全局配置
│── database.php   # 数据库配置
│── cache.php      # 缓存配置
│── mail.php       # 邮件服务配置
│── queue.php      # 队列任务配置

4. database/ (数据库相关文件)

存放数据库迁移、种子、模型工厂等。

database/
│── factories/  # 模型工厂 (`php artisan make:factory`)
│── migrations/ # 迁移文件 (`php artisan make:migration`)
│── seeders/    # 数据填充 (`php artisan make:seeder`)
│── database.sqlite # SQLite 数据库文件(可选)

5. lang/ (语言本地化文件)

存放多语言支持文件,如 lang/en/messages.php


6. public/ (入口文件与静态资源)

public/ 目录是应用的 Web 入口。

public/
│── index.php   # Laravel 应用入口文件
│── storage/    # 软链接的 `storage/app/public`
│── assets/     # CSS、JS、图片资源

7. resources/ (前端资源与视图)

存放 Blade 视图、CSS、JS、Vue 组件等。

resources/
│── views/       # Blade 视图 (`resources/views`)
│── css/         # 样式文件
│── js/          # JavaScript 文件
│── lang/        # 另一种语言包位置

8. routes/ (路由定义)

存放应用的路由文件。

routes/
│── web.php       # Web 路由 (浏览器访问)
│── api.php       # API 路由
│── console.php   # 控制台路由

9. storage/ (文件存储)

存放缓存、日志、上传文件等。

storage/
│── app/         # 用户上传文件
│── framework/   # 框架缓存、会话等
│── logs/        # 应用日志文件 (`laravel.log`)

10. tests/ (测试目录)

存放 PHPUnit 和 Laravel Dusk 测试文件。

tests/
│── Feature/     # 功能测试
│── Unit/        # 单元测试

11. vendor/ (Composer 依赖包)

存放通过 Composer 安装的所有 PHP 依赖包。


12. 其他核心文件

.env              # 环境变量配置
artisan           # Laravel 命令行工具
composer.json     # PHP 依赖管理
package.json      # Node.js 依赖管理
server.php        # 内置 PHP 服务器入口

总结

Laravel 目录结构提供了清晰的组织方式,遵循 MVC 设计模式,使代码更易于维护和扩展。理解这些目录的作用有助于快速上手 Laravel 开发,提高项目的可维护性和扩展性。



标签: Laravel
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!