Merge branch release/21.7.5 of zentao/zentaopms (#11312)

This commit is contained in:
刘刚
2025-09-06 00:00:40 +08:00
committed by Gitfox
+183
View File
@@ -0,0 +1,183 @@
# 禅道PMS项目上下文
## 交互
始终用中文回复。
## 项目概述
禅道PMS(项目管理系统)是由禅道软件(青岛)有限公司开发的开源项目管理软件。它是中国第一个开源项目管理软件,旨在覆盖从产品和项目管理到质量管理、文档管理、组织管理和办公管理的主要项目管理流程。
### 主要特性
- 基于禅道PHP框架构建
- 支持多种项目管理方法论:Scrum、瀑布和看板
- 全面的功能包括产品管理、项目管理、质量管理、文档管理
- 多语言支持(中文、英文、德语、法语等)
- 丰富的模块包括数据可视化、度量、DevOps、文档资产管理、自动化测试
- 版本21.7.5(根据VERSION文件)
### 架构
禅道采用模块化MVC架构:
- **框架**:位于`/framework`的自定义PHP框架
- **模块**:位于`/module`的功能模块(如产品、项目、执行、缺陷、任务等)
- **数据库**:基于MySQL,模式在`/db/zentao.sql`中定义
- **Web界面**:位于`/www`的基于PHP的Web应用程序
- **配置**:位于`/config`的集中配置
## 项目结构
```
zentaopms/
├── api/ # API相关文件
├── bin/ # 可执行二进制文件/脚本
├── config/ # 配置文件
├── db/ # 数据库模式文件
├── doc/ # 文档
├── extension/ # 扩展模块
├── framework/ # 核心框架文件
├── lib/ # 库文件
├── misc/ # 杂项文件
├── module/ # 应用模块
├── sdk/ # 软件开发工具包
├── tmp/ # 临时文件
├── www/ # Web根目录
└── README.md # 项目文档
```
## 构建和运行
### 先决条件
- PHP 8.1或更高版本
- MySQL数据库
- Apache或Nginx Web服务器
### 构建过程
项目使用Makefile进行构建:
1. **清理构建环境**:`make clean`
2. **构建应用程序**:`make`或`make all`
3. **创建包**:`make package`
4. **创建分发版**:`make pms`
构建过程:
- 将必要文件复制到`zentaopms`目录
- 处理和压缩JavaScript/CSS资源
- 设置适当权限
- 创建分发包(ZIP、tar.xz)
### 安装
1. 将分发包解压到Web服务器目录
2. 在`config/my.php`中配置数据库设置(从`config/config.php`复制)
3. 访问Web界面并按照安装向导操作
4. 如果未安装,系统将自动重定向到`install.php`
### 开发环境运行
1. 将源代码放置在Web服务器的文档根目录中
2. 配置Web服务器以服务PHP文件
3. 确保以下目录可写:
- `tmp/`
- `www/data/`
- `config/`
- `extension/`
### 生产环境运行
1. 使用`make pms`构建分发包
2. 解压到生产服务器
3. 设置目录的适当权限
4. 在`config/my.php`中配置数据库连接
5. 通过Web浏览器访问以完成安装
## 配置
### 主配置
主配置在`config/config.php`中,重要设置包括:
- 数据库连接设置
- 请求路由配置
- 语言和主题设置
- 安全设置
- 文件上传限制
### 自定义配置
创建`config/my.php`来覆盖默认设置:
- 从`config/config.php`复制
- 修改数据库连接设置
- 根据需要调整其他配置
### 数据库配置
数据库表在`config/zentaopms.php`中定义为常量:
- 表前缀:默认为`zt_`
- 超过100个表用于不同功能
- 模式在`db/zentao.sql`中定义
## 开发规范
### 代码结构
- 遵循MVC模式,包含模型、视图和控制器
- 模块组织在`/module/{module}/`目录中
- 每个模块通常包含:
- `model.php`:业务逻辑
- `control.php`:控制器动作
- `view/`:模板文件
- `lang/`:语言文件
- `js/`:模块特定的JavaScript
- `css/`:模块特定的CSS
### 路由
- 默认路由:`index.php?m={module}&f={method}`
- PATH_INFO路由:`index.php/{module}-{method}`
- 可在`config/routes.php`中自定义API路由
### 数据库访问
- 使用自定义DAO(数据访问对象)模式
- 定义在`lib/base/dao/`中
- 示例:`$this->dao->select('*')->from(TABLE_USER)->where('id')->eq($id)->fetch()`
### 测试
- 测试位于模块目录下的`test/`中
## 主要模块
禅道具有广泛的模块结构:
- **产品管理**:product、story、productplan、release
- **项目管理**:project、execution、task、build
- **质量管理**:bug、testcase、testtask、testsuite
- **文档管理**:doc、doclib
- **组织管理**:company、dept、user、group
- **DevOps**:repo、job、compile、mr
- **报表**:report、pivot、chart
- **管理**:admin、custom、extension
## API和集成
- 通过`api.php`提供RESTful API
- Webhooks支持集成
- 支持GitLab、Gogs、Gitea、Jenkins、SonarQube
- Xuanxuan集成用于消息传递
## 安全
- 输入验证和过滤
- XSS防护
- CSRF防护
- 通过DAO防止SQL注入
- 文件上传限制
## 国际化
- 多语言支持,语言文件在`/module/{module}/lang/`中
- 支持的语言:简体中文、繁体中文、英文、德语、法语、越南语、日语、西班牙语、葡萄牙语
- 语言选择可在用户偏好中配置