文章目录[隐藏]
# MatorrHome 项目目录结构说明
## 项目概述
这是一个基于PHP的内容管理系统(CMS),采用MVC架构模式,具备文章管理、分类管理、用户权限管理等功能。
目录结构详解
MatorrHome/
├── 根目录脚本文件 # 项目维护和初始化脚本
│ ├── check_*.php # 数据检查脚本
│ ├── init_*.php # 初始化脚本
│ ├── test_*.php # 测试脚本
│ ├── fix_*.php # 修复脚本
│ └── run_import.php # 数据导入脚本
│
├── config/ # 配置文件目录
│ ├── app.php # 应用程序配置
│ └── database.php # 数据库配置
│
├── database/ # 数据库相关文件
│ ├── *_schema.sql # 数据库表结构文件
│ ├── *_init_data.sql # 初始数据文件
│ ├── *.php # 数据库维护脚本
│ └── fix_*.sql # 数据库修复脚本
│
├── public/ # Web根目录(对外访问)
│ ├── index.php # 应用入口文件
│ ├── phpinfo.php # PHP信息页面
│ ├── api/ # API接口目录
│ ├── static/ # 静态资源目录
│ │ ├── css/ # 样式文件
│ │ ├── js/ # JavaScript文件
│ │ └── images/ # 图片资源
│ └── uploads/ # 用户上传文件目录
│ └── 2025/07/ # 按年月组织上传文件
│
├── src/ # 源代码目录(MVC架构)
│ ├── Controllers/ # 控制器层
│ │ ├── AdminController.php # 后台管理控制器
│ │ └── HomeController.php # 前台控制器
│ ├── Models/ # 模型层(数据访问)
│ │ ├── Article.php # 文章模型
│ │ ├── Category.php # 分类模型
│ │ ├── AdminUser.php # 管理员用户模型
│ │ ├── HomepageSection.php # 首页版块模型
│ │ └── Setting.php # 设置模型
│ ├── Core/ # 核心框架类
│ │ ├── Database.php # 数据库连接类
│ │ ├── Router.php # 路由类
│ │ └── BaseModel.php # 模型基类
│ ├── Utils/ # 工具类目录
│ │ ├── Security.php # 安全工具类
│ │ └── UrlHelper.php # URL助手类
│ └── helpers.php # 全局助手函数
│
├── views/ # 视图层(模板文件)
│ ├── admin/ # 后台管理视图
│ │ ├── dashboard.php # 仪表板
│ │ ├── articles.php # 文章列表
│ │ ├── article-form.php # 文章表单
│ │ ├── categories.php # 分类管理
│ │ ├── users.php # 用户管理
│ │ └── *.php # 其他管理页面
│ ├── partials/ # 公共模板片段
│ │ ├── frontend-header.php # 前台头部
│ │ ├── admin-header.php # 后台头部
│ │ ├── footer.php # 前台尾部
│ │ └── admin-footer.php # 后台尾部
│ ├── home.php # 首页模板
│ ├── article-detail.php # 文章详情页
│ ├── category.php # 分类页面
│ ├── search.php # 搜索页面
│ └── error.php # 错误页面
│
├── storage/ # 存储目录
│ └── logs/ # 日志文件
│ └── database.log # 数据库日志
│
└── 文档文件/ # 项目文档
├── *.md # Markdown文档
└── *.md # 中文说明文档
```
## 架构设计原理
### 1. MVC架构模式
- **Models(模型)**: 负责数据访问和业务逻辑
- **Views(视图)**: 负责数据展示和用户界面
- **Controllers(控制器)**: 负责处理用户请求和协调Model、View
### 2. 目录分离原则
#### 安全性考虑
- `public/` 作为Web根目录,只暴露必要的入口文件
- `src/`, `config/`, `database/` 等敏感目录位于Web根目录之外
- 上传文件统一管理在 `public/uploads/` 下
#### 职责分离
- **配置层**: `config/` 统一管理配置文件
- **数据层**: `database/` 管理数据库相关文件
- **业务层**: `src/` 包含所有业务逻辑代码
- **表现层**: `views/` 专门存放模板文件
- **静态资源**: `public/static/` 管理CSS、JS、图片等
#### 可维护性
- 代码按功能模块组织,便于定位和修改
- 核心框架类独立在 `Core/` 目录
- 工具类统一在 `Utils/` 目录
- 公共模板片段在 `partials/` 目录复用
### 3. 文件命名规范
- PHP类文件采用驼峰命名法(如 `AdminController.php`)
- 视图文件采用小写字母加连字符(如 `article-form.php`)
- 配置文件采用小写字母(如 `database.php`)
- 数据库相关文件采用下划线分隔(如 `article_schema.sql`)
### 4. 扩展性设计
- 控制器可按功能模块扩展
- 模型支持新的数据表映射
- 视图支持主题切换
- 工具类支持功能扩展
## 适用场景
这种目录结构适合以下类型的项目:
1. 内容管理系统(CMS)
2. 博客系统
3. 企业官网
4. 新闻发布系统
5. 中小型Web应用
## 参考建议
在创建新项目时,可以参考这个结构:
1. 保持MVC架构的清晰分离
2. 注意安全目录的设置
3. 合理组织静态资源
4. 预留扩展空间
5. 建立规范的命名约定
发表回复