Skip to content

Latest commit

 

History

History
183 lines (136 loc) · 5.09 KB

File metadata and controls

183 lines (136 loc) · 5.09 KB

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