一、概述
Office Anywhere 网络智能办公系统(以下简称通达OA),不仅是一套成熟的网络办公系统,同时也是一个完整、精巧的软件开发平台。通达OA集成了Web开发的全套环境,并提供了管理架构、系统资源的开放性支持,是开发中小型管理应用系统的理想平台。
本文将从入门角度,为您介绍通达OA二次开发的基础知识和环境准备,帮助您快速上手OA二次开发。
二、技术栈概览
通达OA主要采用以下技术栈:
| 技术组件 | 版本 | 说明 |
|---|---|---|
| PHP | 7.2+ | 主要开发语言 |
| MySQL | 5.x | 数据库管理系统 |
| Nginx | - | Web服务器 |
| Redis | - | 缓存服务 |
| Zend | - | PHP扩展加速 |
2.1 技术架构图

2.2 系统服务架构图

三、开发环境搭建
3.1 系统服务介绍
在Windows平台下,通达OA注册了9个系统服务:
- Office_Web:管理Nginx进程的服务,作为Web Server
- MySQL5_OA:MySQL数据库服务
- Office_Redis:Redis缓存服务
- OfficeDaemon:守护进程服务
- OfficeIm:即时通讯服务
- OfficeIndex:全文索引服务
- OfficeMail:邮件服务
- OfficePOP3:POP3邮件接收服务
- OfficeTask:任务调度服务
这些服务可以通过控制面板 → 管理工具 → 服务进行查看和管理。
3.2 开发工具准备
推荐开发环境:
- 代码编辑器:Visual Studio Code、PHPStorm等
- 数据库管理工具:Navicat、MySQL Workbench、phpMyAdmin
- 浏览器:Chrome(推荐)、Firefox
3.3 本地开发配置
在进行二次开发前,建议先熟悉以下配置文件:
MYOA\bin\service.ini:服务配置文件MYOA\bin\php.ini:PHP配置文件MYOA\mysql5\my.ini:MySQL配置文件MYOA\webroot\inc\db_config.php:数据库连接配置
四、核心概念
4.1 模块化架构
通达OA采用模块化架构设计,所有应用模块都存放在 MYOA\webroot\general 目录下。每个模块拥有独立的目录结构,可以独立开发、部署和维护。
4.2 权限验证机制
通达OA为保证数据安全,所有PHP页面原则上都需要包含权限验证程序:
include_once("inc/auth.inc.php");
该文件包含session合法性验证、访问路径授权验证等功能。
4.3 页面渲染规范
为保证界面显示标准统一,所有包含HTML输出的页面需要包含:
$HTML_PAGE_TITLE = _("页面标题");
include_once("inc/header.inc.php");
4.4 数据安全过滤
通达OA提供了用户输入数据过滤机制,通过 common.inc.php 对 $_GET、$_POST、$_COOKIE 等数据进行安全过滤。
五、开发流程
5.1 开发流程图

5.2 开发前准备
- 了解需求:明确需要开发的功能模块
- 分析现有模块:参考类似功能的实现方式
- 数据库设计:规划数据表结构
- 模块命名:遵循OA命名规范
5.2 开发步骤

- 建立模块目录 :在
general目录下创建模块文件夹 - 创建菜单:在系统管理中注册菜单
- 分配权限:为角色分配菜单权限
- 编写代码:实现业务逻辑
- 测试验证:确保功能正常运行
5.3 调试技巧
- 开启PHP错误日志:
MYOA\logs\php_errors.log - 使用浏览器开发者工具调试前端
- 利用数据库管理工具查询数据状态
六、Hello World示例
下面是一个简单的"Hello World"模块示例:
<?php
$HTML_PAGE_TITLE = _("我的第一个模块");
include_once("inc/auth.inc.php");
include_once("inc/header.inc.php");
echo "<h1>" . _("Hello, OA二次开发!") . "</h1>";
include_once("inc/footer.inc.php");
?>
将上述代码保存为 MYOA\webroot\general\helloworld\index.php,然后在系统管理中注册菜单即可访问。