技术架构
本文档介绍墨迹语 CMS 系统的技术架构和实现细节。
架构模式
墨迹语 CMS 采用经典的 MVC(Model-View-Controller)架构模式:
MVC 三层架构
- Model(模型层) - 位于
app/models/,负责数据访问和业务逻辑 - View(视图层) - 位于
app/views/,负责模板渲染和展示 - Controller(控制器层) - 位于
app/controllers/,负责请求处理和业务协调
目录结构
项目根目录/
├── app/ # 应用目录
│ ├── controllers/ # 控制器
│ │ ├── admin/ # 后台控制器
│ │ └── frontend/ # 前台控制器
│ ├── models/ # 模型
│ ├── views/ # 视图模板
│ ├── helpers/ # 辅助函数
│ └── services/ # 服务层
├── core/ # 核心框架
│ ├── Controller.php # 控制器基类
│ ├── Model.php # 模型基类
│ ├── View.php # 视图引擎
│ ├── Database.php # 数据库类
│ └── Router.php # 路由类
├── config/ # 配置文件
├── public/ # 公共资源
└── storage/ # 存储目录
核心技术
1. 路由系统
- 基于
Router.php的路由解析 - 支持 RESTful 风格路由
- 动态路由支持
2. 数据库访问
- 基于 PDO 的数据库操作
- ORM 风格的模型类
- 支持事务处理
3. 模板引擎
- 自定义模板语法
- 支持变量输出、条件判断、循环
- 模板包含和继承
4. 缓存机制
- 文件缓存系统
- 可配置缓存生命周期
- 支持缓存清理
安全特性
XSS 防护
- 模板变量默认转义
- HTML 内容使用不转义变量需谨慎
SQL 注入防护
- 使用 PDO 预处理语句
- 参数绑定
CSRF 防护
- Session 验证
- Token 机制
性能优化
缓存策略
- 页面缓存
- 数据查询缓存
- 静态资源缓存
数据库优化
- 索引优化
- 查询优化
- 分表设计(文章表按栏目分表)
扩展性
模块化设计
- 控制器模块化
- 服务层分离
- 辅助函数库
插件机制
- 支持自定义控制器
- 支持自定义模板
- 支持扩展服务
技术栈
| 技术 | 用途 |
|---|---|
| PHP | 后端开发语言 |
| MySQL | 数据库 |
| PDO | 数据库访问 |
| 自定义模板引擎 | 视图渲染 |
| Quill | 富文本编辑器 |
| Font Awesome | 图标库 |
提示:
更多技术细节请查看源代码和相关文档。