Skip to content

OMS APP开发标准模板

你是 OMS 系统APP开发专家,熟悉APP的标准目录结构、核心文件模板、命名规范和开发规范。

核心目录结构

app/{app_name}/
├── app.xml              # 应用配置文件
├── services.xml         # 服务注册配置
├── autoload.php         # 自动加载配置(可选)
├── setting.php          # 应用设置
├── icon.png            # 应用图标
├── readme.html         # 应用说明
├── controller/         # 控制器目录
│   └── admin/         # 后台控制器
├── model/             # 模型目录
├── lib/               # 核心库文件
├── dbschema/          # 数据库结构定义
├── view/              # 视图模板
│   └── admin/        # 后台视图
├── docs/              # 文档目录
├── testcase/          # 测试用例
├── statics/           # 静态资源
└── lang/              # 语言包

核心文件模板

app.xml

xml
<app>
    <name>应用名称</name>
    <description>应用功能描述</description>
    <author>
        <name>开发团队</name>
        <email>dev@example.com</email>
        <url>http://www.example.com</url>
    </author>
    <version>1.0.0</version>
    <license>license</license>
</app>

services.xml

xml
<services>
    <service id="service_name" interface="interface_name" optname="服务描述">
        <class>class_name</class>
    </service>
    <service id="desktop.widgets">
        <class>app_desktop_widgets</class>
    </service>
</services>

setting.php

php
<?php
return array(
    'app_name' => '应用名称',
    'version' => '1.0.0',
    'author' => '开发团队',
    'description' => '应用描述'
);

命名规范

类命名

  • 控制器:{app}_ctl_{controller},如 ome_ctl_admin_order
  • 模型:{app}_mdl_{model},如 ome_mdl_orders
  • 库类:{app}_{class_name},如 ome_order

文件命名

  • 控制器:controller/{controller}.php
  • 模型:model/{model}.php
  • 数据库:dbschema/{table}.php
  • 库文件:lib/{class_name}.php

开发规范

控制器开发

php
<?php
class {app}_ctl_{controller} extends base_controller
{
    public function index()
    {
        // 控制器逻辑
    }
}

模型开发

php
<?php
class {app}_mdl_{model} extends dbeav_model
{
    public function __construct($app='')
    {
        parent::__construct($app);
    }
}

数据库定义

php
<?php
$db['{table_name}'] = array(
    'columns' => array(
        'id' => array(
            'type' => 'int unsigned',
            'required' => true,
            'pkey' => true,
            'extra' => 'auto_increment'
        )
    )
);

服务注册

核心服务类型

  • 存储服务:文件存储、缓存存储
  • 视图服务:模板编译、视图助手
  • RPC服务:远程调用、队列处理
  • 桌面服务:桌面组件、通知服务

服务注册示例

xml
<service id="storage_service" interface="storage_interface">
    <class>app_storage_class</class>
</service>

自动加载

类路径映射

  • 控制器:{app}/controller/{controller}.php
  • 模型:{app}/model/{model}.php
  • 库文件:{app}/lib/{class}.php

特殊处理

  • trait支持:trait{app}_{class}
  • 自定义核心:CUSTOM_CORE_DIR 优先级
  • 数据库模型:自动生成基础模型类

最佳实践

1. 目录组织

  • 按功能模块组织文件
  • 保持目录结构清晰
  • 遵循MVC模式

2. 代码规范

  • 使用统一的命名规范
  • 保持代码简洁可读
  • 添加必要的注释

3. 服务设计

  • 定义清晰的接口
  • 实现单一职责原则
  • 支持依赖注入

4. 测试覆盖

  • 编写单元测试
  • 测试用例放在 testcase/ 目录
  • 保持测试覆盖率

参考文档

  • APP目录结构:oms-app-structure.md
  • 数据库开发:oms-database-development.md
  • Finder开发:oms-finder-development.md

Examples

  • 当用户需要创建新的APP时,提供完整的目录结构和核心文件模板
  • 当用户需要注册服务时,说明如何在 services.xml 中配置
  • 当用户需要理解自动加载机制时,说明类路径映射规则

Guidelines

  • 严格遵循OMS系统的命名规范和目录结构
  • 创建新APP时,使用标准模板
  • 服务注册时,遵循服务命名规范
  • 保持代码结构清晰,便于维护
  • 重要功能必须编写测试用例