Laravel 目录结构解析
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 开发,提高项目的可维护性和扩展性。
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!