- 好友
- 分享
- 精华
- 阅读权限
- 255
- 注册时间
- 2017-8-17
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
接口二次开发 | 本功能由PHP+MYSQL语言开发,无缝对接新秀网络验证系统,采用独立入口文件、类文件、第三方类文件库进行调用开发。所有功能实现及控制均采用api接口操作,数据输出形式为JSON、XML两种常见形式,达到毫秒级数据快速交换功能。 1、接口开发是结合新秀网络验证系统进行的二次开发,不能独立使用; 2、接口开发遵循Discuz、新秀网络验证、PHP语言规范开发; 3、接口开发适用于新秀网络验证系统旗舰版ver1.0版本以后; 4、本功能与新秀网络验证系统、扩展框架系统,代码相互独立,但功能同时执行; 5、接口开发可使用Discuz内置函数、新秀网络验证内置函数、PHP函数。 | 适用环境:php版本>7.0、Mysql版本>5.5以上、Discuz版本>3.5。 | = Discuz资料库 = Discuz插件开发文档 = 开发交流 = BUG反馈 = QQ客服:3188639 QQ交流群:281079920 | $ ]# s8 g7 o( n3 X" H* j+ j+ k
. S' U! ^) c) G1 L
3 U3 K9 h, o9 S使 用 简 介 | 1、接口开发演示文件下载 | | 2、接口开发演示文件目录说明 | xinxiuvip_network_plugin\\新秀网络验证系统插件主目录 —lib \\自定义类存放目录 (用于开发者存放第三方类、自定义类,命名:lib_dev.php) ——lib_dev.php \\自定义方法库开发文件 (自定义开发接口方法库) —function \\自定义方法存放目录 (用于开发者存放自定义开发接口类和方法) ——function_dev.php \\自定义方法类开发文件 (自定义开发接口方法类) —dev.inc.php \\自定义接口入口开发文件 | 3、如何安装、开发、调试? | #1、下载演示文件后,上传至新秀网络验证插件根目录。discuz论坛插件根目录 \source\plugin\xinxiuvip_network_plugin\ #2、使用PHP代码编辑软件,对入口文件 dev.inc.php 和 自定义方法类文件 function_dev.php 进行开发,注意:UTF8及GBK编码问题。 #3、如需新增接口文件,请根据演示文件,修改 “dev” 为您想要的文件名,但不能与新秀框架插件内文件名冲突,且开发的接口方法,不能与新秀框架冲突。 #4、功能代码开发完成,组装调试接口: 3 j7 y# ^- b' i. f7 p
[PHP] 纯文本查看 复制代码
//根据演示文件中组装url接口地址
demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:dev&soft=2&action=dev_demo1&key=123456&demo1=demo1&demo2=demo2
+ T+ M$ j+ g: _( y
[PHP] 纯文本查看 复制代码
//根据演示文件中接口访问返回的结果
{
"code": "200",
"result": "OK",
"count": 2,
"data": {
"demo1": "demo1",
"demo2": "demo2"
},
"sqltime": "0s"
}
|
dev.inc.php入口文件代码实例 | [PHP] 纯文本查看 复制代码 <?php
#以下两行代码,用于开发环境下代码错误提示,可根据提示信息进行代码检查,无误后即可注释掉!
// ini_set("display_errors", "on");
// error_reporting(E_ALL);
#注释结束
#防止游客直接输入网址进行访问,权限检测,勿动!!!
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
#注释结束
#引入自定义开发类文件,此文件保存位置 'function/dev' 代表 function/function_dev.php 如需修改请按格式进行!
C::import('function/dev', 'plugin/xinxiuvip_network_plugin', false);//注意这里和接口二次开发不同
$api = new function_dev();//实例化function_dev.php类操作,实例化后可用$api->调用function_dev.php中的类方法!
#注释结束
#此处为入口文件,根据接口方法,调用对应类方法。
switch ($api->action) { //$api->action 获取入口方法,勿动!!!
#此处代码根据接口开发需求,可以无限添加循环。
case 'dev_demo1': // 判断是否是此方法,如果是则进入下一步!
$demo1 = web_client::safe_check('demo1', true); //判断参数传输,params为参数名称,iscore为是否是必填项(true为必填,false为可空)
$demo2 =web_client::safe_check('demo2', false);//判断参数传输,params为参数名称,iscore为是否是必填项(true为必填,false为可空)
$api->dev_demo1($demo1,$demo2);//调用function_dev.php实例化后类方法,根据类方法设置传入参数。
break;
#注释结束
#此处代码是判断接口输入是否正确。勿删!!!
default:
web_output::json_output(400,'error010');
break;
#注释结束
}
#注释结束 | ( D! f6 R9 o& S
function_dev.php自定义方法类代码实例 | [PHP] 纯文本查看 复制代码
<?php
#以下两行代码,用于开发环境下代码错误提示,可根据提示信息进行代码检查,无误后即可注释掉!
//ini_set("display_errors", "on");
//error_reporting(E_ALL);
#注释结束
#防止游客直接输入网址进行访问,权限检测,勿动!!!
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
#注释结束
#引入核心系统类,勿删!!!
C::import('class/plugin', 'plugin/xinxiuvip_network_plugin', false);
#注释结束
#如何引入自定义系统类?
#1、将自定义核心类、第三方核心类上传至extend文件夹下;
#2、通过 C::import 、 require_once 两种引入形式引入第三方核心类;
#3、在下方方法中使用 lib_dev::demo_dev(); 进行调用,具体功能看lib_dev封装代码;
C::import('lib/dev', 'plugin/xinxiuvip_network_plugin', false);//如果没有自定义类库,请将此处注释掉!
#注释结束
class function_dev extends class_plugin
{
public $action_all = array('dev_demo1'); //所有接口必填,用逗号隔开!!!除以下key、adminkey所包含以外,未包含的接口都是通过token令牌进行访问。
public $function_action_key = array('dev_demo1'); //使用key密钥访问的接口
public $function_action_adminkey = array(); //使用管理密钥adminkey访问的接口
/**
* 构造方法 __construct() 是在实例化对象时被自动调用
* 用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法)
*/
public function __construct()
{
parent::__construct(); //继承父类构造方法
}
#此处为标准类方法,可根据DISCUZ、新秀网络验证内置函数进行调用,也可使用PHP官方函数进行操作。
public function dev_demo1($demo1, $demo2)
{
#-具体DISCUZ内置函数、新秀网络验证内置函数、PHP函数,论坛相应帖子有专门介绍。
$data = array( //组合数组
'demo1' => $demo1,
'demo2' => $demo2
);
$data['time'] = lib_dev::demo_dev(time());//调用lib自定义封装类库示例;
#========================================
#嵌入点开发,注意:此扩展方法在应用中心-内置钩子页面设置;
web_client::class_hook('hook_dev_demo1',array($data));
/*
* 下面是接口拓展对应的方法
* 注意class_hook中的'hook_dev_demo1' 就是扩展文件中的方法名!
* 将下面代码复制到-内置钩子开发页面中。
*
public function hook_dev_demo1($data){
var_dump($data);
}
*/
#========================================
web_output::json_output('200', '', $data); // 新秀内置打印函数,打印结果,并结束程序。
#-具体DISCUZ内置函数、新秀网络验证内置函数、PHP函数,论坛相应帖子有专门介绍。
}
#注释结束
/**
* 析构方法 __destruct() 是在对象被销毁时自动调用
* 用途:可以进行资源的释放操作或文件的关闭操作或信息保存操作
*/
public function __destruct()
{
return parent::__destruct(); // TODO: 析构方法
}
}
| / P0 \. c2 e6 u
lib_dev.php自定义封装类库代码实例 | [PHP] 纯文本查看 复制代码
<?php
#以下两行代码,用于开发环境下代码错误提示,可根据提示信息进行代码检查,无误后即可注释掉!
//ini_set("display_errors", "on");
//error_reporting(E_ALL);
#注释结束
#引入验证自带核心系统类,勿删!!!
C::import('class/xinxiu', 'plugin/xinxiuvip_network', false);
#注释结束
class lib_dev
{
/**
* 自定义封装类库方法演示,根据自己的需求进行功能开发!
* demo_dev 为自定义方法名
* @param [type] $value
* @return void
*/
public static function demo_dev($value)
{
return $value;//直接返回传回的值
}
}
| : p) o; r4 K8 z* [0 _
将接口添加到接口管理数据库实例 | 将设定好的接口方法添加到接口管理中心。如果不在此处添加将报错。 $ X& d6 v. ?) j* N o4 q
; p) U h% K) Z$ M' }' N | ( r! ]1 d2 \9 o5 f/ M
|
|