znt/QWEN.md

184 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 禅道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/`中
- 支持的语言:简体中文、繁体中文、英文、德语、法语、越南语、日语、西班牙语、葡萄牙语
- 语言选择可在用户偏好中配置