WitFrame 开发者 SDK
[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]
结构
| 目录 | 含义 |
| ---------------- | ---------------------------- |
| /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]