# 应用开发标准模板
基于 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
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
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
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
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
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
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
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
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. 性能优化
- 合理使用缓存
- 优化数据库查询
- 减少不必要的文件加载