mamingjian 5 лет назад
Родитель
Сommit
80d7cad495

+ 13 - 32
README.md

@@ -1,35 +1,16 @@
-# PHPBase2 使用说明
-
-通过多年多个项目的经历,我们对框架不断进行调整,以达到简洁、高效的目标。
-
-本文档已`phpbase2_demo`进行讲解。
-
-项目模板结构如下
-
-```
-project root/
-├── protected // 受保护目录
-│   ├── bin // 可执行脚本目录
-│   ├── conf // 配置目录
-│   ├── controllers // 控制器目录
-│   ├── data // 数据目录
-│   ├── extensions // 扩展工具类的目录
-│   ├── models // 模型目录
-│   ├── views // 视图目录
-│   └── common.php // 项目公共定义文件
-├── static // 静态资源
-│   ├── css 
-│   └── js
-└── index.php // 入口文件
-```
-
-一次完整请求
-
-```
-php-fpm -> index.php -> common.php -> conf 
-           └──> controller <-> model
-                └──> view(json)
-```
+# DIY 使用说明
+
+> 可快速开发管理后台、自定义网站后台数据展示可视化、
+>
+> DIY 系统、自定义配置数据库后台等。
+>
+> 可自定义排序、日志统计功能、数据导入、导出等,操作数据库功能
+>
+> 入口在 多玩后台 => 系统管理 => DIY系统。
+
+
+
+
 
 
 

+ 7 - 9
SUMMARY.md

@@ -2,13 +2,11 @@
 
 * [简介](README.md)
 * [基础用法](chapter1.md)
-  * [配置](chapter1/pei-zhi.md)
-  * [路由](chapter1/lu-you.md)
-  * [控制器](chapter1/kong-zhi-qi.md)
-  * [模型](chapter1/mo-xing.md)
-  * [视图](chapter1/shi-tu.md)
-* [其他补充](qi-ta-bu-chong.md)
-  * [Param](qi-ta-bu-chong/param.md)
-  * [TableHelper](qi-ta-bu-chong/tablehelper.md)
-  * [可执行脚本](qi-ta-bu-chong/ke-zhi-xing-jiao-ben.md)
+  * [数据库参数配置](chapter1/database-setting.md)
+  * [页面配置管理](chapter1/page-setting.md)
+  * [查询条件配置](chapter1/query-condition-setting.md)
+  * [字典配置](chapter1/dictionary-setting.md)
+* [其他补充](other.md)
+  * [注入和回调](other/inject-callback.md)
+  * [通用统计](other/common_query.md)
 

+ 10 - 0
chapter1.md

@@ -0,0 +1,10 @@
+## 基础用法
+
+1. [数据库参数配置](/chapter1/database-setting.md)
+2. [页面配置管理](/chapter1/page-setting.md)
+3. [查询条件配置](/chapter1/query-conditiom-setting.md)
+4. [字典配置](/chapter1/dictionary-setting.md)
+
+
+
+

+ 9 - 0
chapter1/database-setting.md

@@ -0,0 +1,9 @@
+###  数据库配置
+
+当项目为新增项目时,需要将新项目的数据库配置添加到名字服务中
+以便在加载数据库时能找到新项目的数据库
+
+入口:`多玩后台 => 系统管理 => 名字服务`。
+
+请参考之前数据库配置或者从之前的配置中复制一个出来做调整。
+配置添加完成以后需要点击发布,发布到各个服务器上。

+ 21 - 0
chapter1/dictionary.md

@@ -0,0 +1,21 @@
+### 字典配置
+
+在添加功能过程中,可能会出现源表中的某个字段是其他表中的字段,可能需要通过这个字段获取其他表的信息,这时候可以通过字典完成数据关联,关联以后,diy页面中所有该字段的展示都会替换成对应的关联内容。
+
+#### <font color="orange">选择字典</font>
+![dictionary_1](D:\dwdoc\DIY\src\img\dictionary_1.png)
+
+- 可以通过`页面配置管理`=>`查询功能`中的标注1进入字典配置,也可以通过`多玩后台 =》系统管理 =》DIY系统 =》字典管理`进入
+- 可以通过标注2的**--新版字典--**的下拉框选择对应的字典
+
+#### <font color="orange">新增字典</font>
+![dictionary_2](D:\dwdoc\DIY\src\img\dictionary_2.png)
+
+- map的唯一标识:推荐格式 **数据库名:表名:key字段名:value字段名**
+- 映射标题 :推荐格式 **diy页标题 key字段名=>value字段名**
+- 名字服务db名:字典所在数据库,数据库必须存在于名字服务中
+- 表名:字典所在数据表
+- 键名:关联的字段名
+- 值名:被关联内容的字段名
+- 值名可以根据展示需要使用sql修改,如:<font color="red">concat('\[',gid,'\]\[',game_name,'\]') </font>  展示效果 =><font color="red"> \[1\]\[魔域\]</font>
+

+ 44 - 0
chapter1/page-setting.md

@@ -0,0 +1,44 @@
+### 页面配置管理
+
+#### <font color="orange">新增页面</font>
+
+从 `多玩后台 =》系统管理 =》DIY系统` 中的`新建`,打开页面配置管理
+
+#### <font color="orange">页面配置</font>
+
+![add_config](D:\dwdoc\DIY\src\img\add_config.png)
+- 页面标题:推荐使用项目名-自定义名称的格式命名,eg:27小程序-库存游戏
+- 页面尺寸:控制数据分页时每页的数据数量
+- 内嵌Css或Js:为页面注入css和js
+- 数据操作:提供后台功能的重用操作
+>   - 可编辑:提供可以编辑功能
+>   - 可导出:可将页面结果导出一份Excel表
+>   - 可分组计算:勾上后,就可以对页面数据进行分组、计数、求和、求最大/最小值等统计操作;
+>   - 可展现图形:支持用柱状图、折线图、饼图展现统计结果;
+>   - 可导出模板:可将页面结果导出一份Excel表;
+>   - 可导入模板:将Excel表中的数据导入数据库中
+
+- 保存回调:在数据添加或编辑时提供回调
+- 名字服务数据库:选择导入数据库,这里的数据库必须在名字服务中已配置,方法请查看 [数据库配置](/chapter1/database-setting.md)
+- 数据源表名:选好数据库后,点击右侧的刷新链接,然后选择数据表
+- 数据表名回调:为查询的数据表名提供回调方法,可以控制查询的表名
+- 高级编辑:设置编辑成功以后自动更新对应的redis缓存
+- 推送Redis:通过向Redis的channel推送消息,以完成和其他客户端(如Java)的约定事件
+- 点击加载数据库字段,加载字段配置列表。
+
+#### <font color="orange">查询字段配置</font>
+![field_congif](D:\dwdoc\DIY\src\img\field_congif.jpg)
+- 加载原字段按钮的效果是还原最近保存的编辑字段,源字段覆盖数据库字段的效果是在当前的字段状态下,加载当前不存在的源数据库字段,添加新字段则可以增加数据库中不存在的展示字段
+- 标注1为字段名,标注2为字段注释,标注3为字段类型,标注4为作为查询条件时的输入框类型
+- 标注5中为字段的一些显示配置,**纬度**即分组(Group By)的键,**指标**即为需要统计或者保留的字段,同时,纬度和指标影响是否在查询结果中展示,条件选项决定字段是否可以在查询配置中出现;
+- `标注8`和`标注9`都可以注入代码对数据进行处理。`标注8`可以注入sql,`标注9`则可以注入php代码,注意标注9中的回调要使用return返回结果
+- 标注11位查询结果的默认值,可以使用php代码进行回调,使用php代码回调时以::开头
+- 标注12是对字段值得枚举配置,一般使用json,同时,数据表的注释以  **简介:key:value(,key:value)...** 的格式定义时,加载数据表会把注释转化成对应的json
+- 配置好所有需要字段的选项后,点击页面左下的'提交'按钮创建一张diy页面
+- 提交以后回到页面顶部的**页面地址**,点击链接打开diy页面进行之后的配置
+
+#### <font color="orange">编辑字段配置</font>
+![edit_config](D:\dwdoc\DIY\src\img\edit_config.jpg)
+- 标注1为编辑模式输入框的形式
+- 标注2中必填限制表单提交为必填项,添加/编辑则控制该字段在这两个模式下是否显示,直接编辑选项可以让字段可以在查询展示表格中快速编辑
+- 标注3为编辑模式下字段内容为空是的默认填充值

+ 15 - 0
chapter1/query-condition-setting.md

@@ -0,0 +1,15 @@
+###  查询条件配置
+
+![query](D:\dwdoc\DIY\src\img\query.png)
+通过diy页面的`高级查询>>`进入查询条件编辑模式
+
+![query_config](D:\dwdoc\DIY\src\img\query_config.png)
+- 标注1为查询条件添加的位置,可以选择相应的查询字段和查询条件
+>   * 可选查询字段为`页面配置管理`=>`查询功能`中选择了条件选项的字段
+>   * 查询字段的输入框格式为`页面配置管理`=>`查询功能`中选择了字段输入框类型
+>   * 配置的输入框可以填入页面打开时的默认查询值
+>   * 可以拖动已添加的查询条件调整位置
+
+- 添加好查询条件以后可以通过标注2的`设为默认`按钮保存查询设置,刷新页面,即可看到查询条件
+- 有默认值或者有查询内容的查询条件,在编辑模式下会无法删除,需要把地址栏中的条件先删掉,在打开重新页面编辑
+

+ 4 - 0
other.md

@@ -0,0 +1,4 @@
+## 其他补充
+
+1. [注入和回调](/other/inject-callback.md)
+2. [通用统计](/other/common-query.md)

+ 13 - 0
other/common_query.md

@@ -0,0 +1,13 @@
+### 通用统计
+
+该模块主要是处理一些复杂的数据统计功能,通过离线的定时任务方式统计和处理,最后将处理结果汇总到指定数据表中,所以需要自己在数据库准备好目标库和表。
+可以通过[通用统计文档](http://gitbook.duowan.com/dwdoc/datastatic/)了解
+
+#### <font color="orange">补充 </font>
+- 源表配置实际是定时任务获取数据源的方式,最终获取的数据与配置表的查询结果中的数据一致。注意:需要在配置中勾选分组计算
+![common-query1](D:\dwdoc\DIY\src\img\common-query1.png)
+- 在通用统计系统新建定时任务时,填入的数据源地址需要是经过分组配置的查询页的地址,配置方式是在源表的查询结果结果页的右侧选中分组计算选项(标注1),然后将需要分组的字段设置成分组,然后需要入库的数据字段设置为保留(标注2),设置好以后地址栏除域名部分就是数据源地址,否则,在调试的过程中查询结果将不会执行插入操作
+- 通用统计系统中的目标数据库和目标数据表填的是需要更新的数据库和表,可能需要自己额外准备
+- 需要重复调试任务时,需要先将该任务的上一次调试结果日志先删除,日志可以在离线任务流水功能中通过任务ID找到
+- 每个统计任务只能处理一张目标数据表,所以需要操作多张数据表的任务需要拆分
+

+ 35 - 0
other/inject-callback.md

@@ -0,0 +1,35 @@
+### 注入和回调
+
+以[名字服务配置]("http://admin.duowan.com/#!nodeId=7449")为例子说明
+所有以php代码进行的回调, 回调代码都可以使用phpbase2框架的方法,如创建数据库连接
+
+#### <font color="orange">内嵌Css或Js</font>
+![inject-callbacke-css](D:\dwdoc\DIY\src\img\inject-callbacke-css.png)
+插入时遵循**<script>js代码<script><style type='text/css>css代码</style>**
+
+#### <font color="orange">保存回调 </font>
+![inject-callback-save](D:\dwdoc\DIY\src\img\inject-callback-save.png)
+- **保存回调**需要先勾选可编辑选项
+- 回调结束需要return 结果,否则回调处理不生效
+- 使用回调方法Diy_Table:on('eventName', function($args) {  })处理回调逻辑
+- 回调方法的event可分为:
+> diy_edit_save:before 添加/保存/删除 前置事件,返回false会终止操作
+> diy_edit_save:after 添加/保存/删除 后置事件
+> diy_edit_import:before 导入 前置事件,参数:\&\$rows
+> diy_edit_import:after 导入 后置事件,参数:\&\$rows
+
+- 可以通过回调函数的\$args传参获取保存过程的一些相关数据,$args参数:
+> type 保存类型(eg:add,edit,del)
+> newData 提交时的数据集(注意,编辑模式提交的数据没有变更,不会存放到newData,需要从oldData中获取)
+> oldData 编辑时分配的数据集
+
+#### <font color="orange">数据库表名回调 </font>
+![inject-callback-database](D:\dwdoc\DIY\src\img\inject-callback-database.png)
+- 通过**condition\[字段名\]\[操作符\]**获取各个搜索添加的参数值,操作符对应搜索配置时下拉选择的字段关系:=,!=,>,>=,<,<=,like,like .%(开头类似于),like %(结尾类似于).,in,not in,:(区间于)
+- 代码处理最终需要return最终的表名处理结果
+- 数据库名回调相当于sql查询的表名部分,即:**select * from (数据库明发回调) where ....**,所以,可以将回调结果处理成子查询,完成较为复杂的逻辑
+
+#### <font color="orange">字段回调 </font>
+![filed_callback](D:\dwdoc\DIY\src\img\filed_callback.png)
+
+- 字段配置的回调也都是使用php代码实现的,但要注意要以::开头,最后return结果

BIN
src/img/add_config.png


BIN
src/img/common-query1.png


BIN
src/img/dictionary_1.png


BIN
src/img/dictionary_2.png


BIN
src/img/edit_config.jpg


BIN
src/img/field_congif.jpg


BIN
src/img/filed_callback.png


BIN
src/img/inject-callback-database.png


BIN
src/img/inject-callback-save.png


BIN
src/img/inject-callbacke-css.png


BIN
src/img/query.png


BIN
src/img/query_config.png