# 应用开发标准模板

基于 app/base 目录结构,为新建应用提供统一标准模板。

# 目录结构

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

# 核心文件模板

# app.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>
1
2
3
4
5
6
7
8
9
10
11
12
13

# services.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>
1
2
3
4
5
6
7
8
9
10
11

# setting.php

<?php
return array(
    'app_name' => '应用名称',
    'version' => '1.0.0',
    'author' => '开发团队',
    'description' => '应用描述'
);
1
2
3
4
5
6
7

# 命名规范

# 类命名

  • 控制器:{app}_ctl_{controller}
  • 模型:{app}_mdl_{model}
  • 库类:{app}_{class_name}

# 文件命名

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

# 开发规范

# 1. 控制器开发

<?php
class {app}_ctl_{controller} extends base_controller
{
    public function index()
    {
        // 控制器逻辑
    }
}
1
2
3
4
5
6
7
8

# 2. 模型开发

<?php
class {app}_mdl_{model} extends dbeav_model
{
    public function __construct($app='')
    {
        parent::__construct($app);
    }
}
1
2
3
4
5
6
7
8

# 3. 数据库定义

<?php
return array(
    'columns' => array(
        'id' => array(
            'type' => 'int unsigned',
            'required' => true,
            'pkey' => true,
            'extra' => 'auto_increment'
        )
    )
);
1
2
3
4
5
6
7
8
9
10
11

# 服务注册

# 核心服务类型

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

# 服务注册示例

<service id="storage_service" interface="storage_interface">
    <class>app_storage_class</class>
</service>
1
2
3

# 自动加载

# 类路径映射

  • 控制器:{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/ 目录
  • 保持测试覆盖率

# 部署说明

# 1. 文件权限

  • 确保目录可写权限
  • 配置文件只读权限
  • 静态资源可访问

# 2. 依赖管理

  • 检查服务依赖关系
  • 确保数据库表已创建
  • 验证配置文件正确性

# 3. 性能优化

  • 合理使用缓存
  • 优化数据库查询
  • 减少不必要的文件加载
最后更新: 11/11/2025, 9:12:34 PM