
禅道扩展开发
手册分类

- 1 禅道二次开发简介
- 2. 禅道扩展开发
- 2.1 禅道扩展机制简介
- 2.2. 新增独立模块
- 2.2.1 基本的代码组织
- 2.2.2 新增控制层(control/zen)
- 2.2.3 新增模型层(model/tao)
- 2.2.4 新增视图层(view/ui)
- 2.2.5 新增语言项lang和配置项config
- 2.2.6 新增前端样式CSS和JavaScript
- 2.3. 修改已有模块
- 2.3.1 对控制层(control/zen)扩展
- 2.3.2 对模型层(model/tao)扩展
- 2.3.3 对视图层(ui)扩展
- 2.3.4 对样式表CSS和JavaScript进行扩展
- 2.3.5 对多语言和配置进行扩展
- 2.4. 常用类库
- 3. 禅道API
- 3.1 API机制简介
- 3.2 需要登录验证的API调用
- 4 命令行调用
禅道扩展机制简介 分享链接 /book/extension-dev/extension-summary-1322.html
作者:zentaoteam
最后编辑:马喆 于 2025-02-07 17:45:49
浏览量:2772
本篇目录
背景介绍
禅道软件的定制开发通常需要对已有代码进行修改或增加新功能。市面上大多数开源软件在进行二次开发后只能停留在特定版本,升级时往往需要重新开发。虽然像WordPress、Drupal等知名软件开发了Hook机制来解决这个问题,但这种基于事件的扩展方式只能进行局部修改,难以实现深度定制。
禅道的解决方案
为解决这个问题,禅道在设计时特别注重框架的扩展性,实现了一套完整的扩展机制,为开发者提供更大的定制自由度。
核心架构
禅道的功能由独立模块组成,每个模块对应module目录下的一个子目录(如project、user等)。每个模块采用MVC架构:
- Control(控制层)
- Model(模型层)
- View/UI(视图层)
辅助组件
除基本MVC结构外,还包含:
- Config(配置)
- Lang(语言)
- CSS(样式)
- JS(脚本)
- Zen(控制层子层)
- Tao(模型层子层)
扩展目录说明
禅道的extension目录用于存放扩展代码:
extension/ ├── biz/ # 企业版 ├── max/ # 旗舰版 ├── ipd/ # IPD版本 └── custom/ # 二次开发专用目录所有定制开发的代码都应维护在extension/custom目录下。
开发指南
定制开发通常分为新增模块和修改已有模块,我们来看下代码分别是怎么组织的:
1. 比如新增一个oa模块,所有代码都需要在extension/custom/oa目录下编写:
extension/custom/oa/control.php extension/custom/oa/model.php extension/custom/oa/view/{metho1.html.php, method2.html.php, ...} extension/custom/oa/config/config.php extension/custom/oa/css/{method1.css, method2.css, common.css, ...} extension/custom/oa/js/{method1.js, method2.js, common.js, ...}
2. 修改禅道已有的user模块,扩展代码的目录结构如下:
extension/custom/user/ext/control/{method1.php, method2.php, ...} extension/custom/user/ext/model/{extend1.php, extend2.php, ...} extension/custom/user/ext/view/{method1.html.php, method2.html.php, ...} extension/custom/user/ext/config/{config1.php, config2.php, ...} extension/custom/user/ext/lang/zh-cn/{lang1.php, lang2.php, ...} extension/custom/user/ext/lang/en/{lang1.php, lang2.php, ...} extension/custom/user/ext/css/method1/{1.css, 2.css, ...} extension/custom/user/ext/js/method1/{1.js, 2.js, ...}
两种方式的主要区别
重要命名规范
新增加的模块名和control层的文件名必须使用小写命名。
扩展机制的优势
扩展机制的局限性
最佳实践建议