去评论
dz插件网

WitFrame 开发者 SDK

admin
2022/10/18 12:57:17
[md]#

结构


| 目录             | 含义                         |
| ---------------- | ---------------------------- |
| /www             | www首页目录                  |
| /conf            | 配置文件                     |
| /framework       | 框架库,直接调用,免 include |
| /lib             | Lib 远程函数库               |
| /sdk             | sdk 系统文件                 |
| /www/[app]/[ver] | 应用目录                     |

## /www

URL下直接访问,[http://youwebsite/WitSdk-Dev/www/](https://gitee.com/link?target=ht ... WitSdk-Dev%2Fwww%2F)

* “应用提审”:请先在 dev.witframe.com 创建一个同名的应用(测试时不要用Sample),点击提审后,SDK 自动打包插件文件到 WitFrame。
* “安装”:如应用存在 SQL 文件,会进行安装,数据字段会进行修补。
* “应用设置”:如果应用存在 /conf/setting.yaml 文件,会跳转到线上的设置页面

## /conf

在 WitFrame 中新建一个“用户集”和“项目”,将“通讯设置”的“配置导出”的内容粘贴到 /www 界面的“系统配置”的“配置导入”中

保存后 /conf/config.ini 文件会自动生成,“数据库配置”请酌情修改

## /framework

框架包含 autoload 此目录下的库文件可直接调用,如:

```
Common::debug($a);
```

## /lib

远程函数库,按照下面的方法调用,文档见 WitFrame 的“接口文档”

```
Lib\Apis::Sample_v1_apis(['xxx' => 1, 'b' => [1,2]])
```

## /www/[app]/[ver]

* [app] 应用目录,文件名首字母大写
* [ver] 应用分支目录

### /conf

setting.yaml 为在线配置文件,通过此文件可直接生成一个参数设置的页面,设置后,如果是非 SAAS 的网站,WitFrame 会把配置同步给网站,生成一个 setting.php 文件,供应用自己调用。

### /controllers

Controller 控制器入口,文件名首字母大写,且类名必须包含文件名(无扩展名)+ "Controller",且必须 "extends ApiController"

### /models

Model 业务模型入口,文件名首字母大写,且类名必须为 "Model_文件名(无扩展名)"

### /views

View 用户界面入口,存放模板文件,文件扩展名固定为 .phtml,用以下方法调用

```
$this->template('sample');
```

### /install

用户购买、下载应用后进行数据库的安装,可在 /www 页面点“安装”,进行操作。

### /static

对于包含独立页面的应用,此处存放一些静态文件,如 js、css 等。

# 应用类型

## 普通应用

一个文件中可包含多个入口,URI 参数的顺序为 /plugin/app/ver/filename/action

如要调用 /www/Sample/v1/controllers/Index.php 的 indexAction(),可用以下 URL:

```
http://youwebsite/WitSdk-Dev/www/index.php/plugin/Sample/v1/index/index
```

indexAction 时 action 可省略

如要调用 /www/Sample/v1/controllers/Index.php 的 showAction(),可用以下 URL:

```
http://youwebsite/WitSdk-Dev/www/index.php/plugin/Sample/v1/index/show
```

## 接口应用

一个文件中可包含多个接口,被调方的接口名规则为 Lib\Apis::plugin_ver_action

如要调用 /www/Sample/v1/controllers/Apis.php 的 indexInterface(),可用以下方式调用:

```
Lib\Apis::Sample_v1_apis(...)
```

indexInterface 时 action 可省略

如要调用 /www/Sample/v1/controllers/Apis.php 的 getInterface(),可用以下方式调用:

```
Lib\Apis::Sample_v1_apis_get(...)
```

同 SDK 内的接口可本地化直接调用,不在本地的接口,会自动请求线上已购买的应用,并按照开发者设定的规则收费。

# 应用发布流程

* 1、在 dev.witframe.com 创建同名的应用
* 2、设计完应用后点击“应用提审”推送到线上
* 3、在 dev.witframe.com 找到自己的应用,提交审核
* 4、审核通过后可进行上下架处理并设置价格

# 模板语法

模板语法遵从 Discuz! 模板语法

## 模板变量

模板变量统一用 {#xxx} 格式引用,模板变量为 $this->G 中的变量,或者在调用模板时通过以下方式人工引用:

```
$this->template('sample', array('user' => 'Monkeye'));
```

如上例代码中,在模板里可用 {#user} 引用

## 应用地址

```
{api_uri /App/ver}
```

返回应用的 URL,线上会替换为用户自己的域名。路径参数以应用 path 和分支 path 开头,后面为相应的 filename 及 action,例如:

```
<form action="{api_uri /Tinybbs/saas/index/login}" method="post">
......
```

## 静态地址

```
{api_static_uri /App/ver}
```

返回应用的静态 URL,线上会替换为 static-api.witframe.com。路径参数包含应用 path 和分支 path,例如:

```
<img src="{api_static_uri /Sample/v1}/static/logo.png"/>
```

# 可用常量

## PLUGIN_ROOT_PATH

应用根目录的路径,即 /Sample 的真实路径

## PLUGIN_PATH

当前应用分支的路径,即 /Sample/v1 的真实路径
[/md]