ThinkPHP 标准目录结构(新旧版本对比)
时间: 2026-03-14 10:01:42
(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)
📁 ThinkPHP 标准目录结构(新旧版本对比)
不同版本的ThinkPHP目录结构差异很大,我先列出最常见的两种布局,方便你对照查找关键文件。
ThinkPHP 5.0 / 5.1 典型结构
项目根目录
├── application/ # 应用目录
│ ├── index/ # 模块目录
│ │ ├── controller/ # 控制器
│ │ ├── model/ # 模型(这里可能有字段定义)
│ │ └── view/ # 视图
│ ├── database.php # 数据库配置文件(关键)
│ ├── config.php # 应用配置文件
│ └── command.php # 命令行配置
├── public/ # 入口目录
├── runtime/ # 运行时目录
├── vendor/ # 第三方库
├── think # 命令行入口
├── .env # 环境配置(可能包含数据库密码)
└── composer.json
> 💡 在 5.x 版本中,数据库迁移文件(migrations) 通常位于 database/migrations/ 下。
> 但 5.0/5.1 早期版本可能没有这个目录,那时迁移功能是可选安装的扩展(topthink/think-migration)。
ThinkPHP 6.0+ 典型结构
项目根目录
├── app/ # 应用目录
│ ├── controller/ # 控制器
│ ├── model/ # 模型
│ └── common.php # 公共函数
├── config/ # 配置目录
│ ├── database.php # 数据库配置(关键)
│ └── app.php # 应用配置
├── route/ # 路由定义
├── database/ # 数据库相关(重点看这里!)
│ ├── migrations/ # 数据库迁移文件(表结构在这里!)
│ ├── seeds/ # 数据填充文件
│ └── factories/ # 模型工厂
├── public/ # 入口目录
├── runtime/ # 运行时缓存
├── vendor/ # 第三方库
├── .env # 环境配置(可能包含数据库密码)
├── .example.env # 环境配置示例
└── composer.json
> 💡 在 ThinkPHP 6+ 中,数据库迁移(migrations) 已经成为官方推荐的标准实践,database/migrations/ 目录是必定存在的(只要项目初始化时使用了 --web 或包含了数据库扩展)。
🔑 关键文件定位法
你现在手里应该有项目源码,可以按下面顺序手动检查这几个关键位置,就知道能不能恢复数据库结构了:
1. 找数据库配置文件
无论版本,先定位数据库连接信息:
- application/database.php (TP5.x)
- config/database.php (TP6+)
- 或者 .env 文件(如果有)
2. 找迁移文件(表结构“源代码”)
- database/migrations/
- 里面如果有类似 2022_01_01_123456_create_users_table.php 的文件,打开就能看到表结构定义
3. 找模型文件(反推结构)
如果找不到迁移文件,就看模型里的注释:
- application/index/model/User.php (TP5)
- app/model/User.php (TP6)
模型里可能有 @property 注释或 protected $schema 属性,记录字段信息
4. 找 SQL 文件(最原始的表结构)
有的开发者习惯把数据库导出放在项目里,比如:
- data.sql
- install.sql
- database.sql
- 或者放在 public/、docs/ 下
🧠 一句话总结
你能恢复表结构的关键,不是目录结构本身,而是:
✅ 有迁移文件(migrations) → 一键重建
✅ 有 SQL 文件 → 直接导入
✅ 有模型 + 控制器代码 → 手动反推(较累)
你现在方便看看项目根目录下,有没有 database/ 或 migrations/ 文件夹?
或者直接告诉我你看到的目录结构大概长什么样,我可以帮你判断属于哪个版本,并告诉你接下来该翻哪个文件。