热搜:
您所在的位置:首页 > 资讯教程 > 插件教程 > 帝国万能api接口插件核心【入口】【配置】【模块 】【控制器】【api.class.php】【扩展类】

帝国万能api接口插件核心【入口】【配置】【模块 】【控制器】【api.class.php】【扩展类】

2017-06-05 16:24:23  来源:互联网  次阅读

统一入口文件

利用帝国万能api接口插件开发的api/插件入口文件都是 /e/extend/api/index.php?[模块变量名]=[模块名]&[控制器变量名]=[控制器名]&[自定义变量]=[自定义变量] 
例如:
http://yourdomain/e/extend/api/index.php?m=user&c=count
http://yourdomain/e/extend/api/index.php?m=user&c=info&id=1

某些平台回调地址中不允许出现问号怎么办?

使用伪静态功能,将地址简化即可。例如我们将上面的两个地址利用伪静态变成:
http://yourdomain/dgapi/user/count
http://yourdomain/dgapi/user/info?id=1

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
	
  RewriteRule ^dgapi/([a-z]+)/([a-z]+)(.*)$ e/extend/api/index.php?m=$1&c=$2$3 [QSA,PT,L]
  # 上一行的问号前面请添加一个反斜杠
</IfModule>

权限配置

这个配置文件会在安装的时候,将自动授权给一个管理组(当前操作的管理员所在的管理组),因此万一误操作将所有管理组权限都去掉而引起无法管理的情况出现,可以通过删除插件目录下的install.lock来解决。

基本设置

目前的基本设置比较简单,甚至在使用过程中都不需要搭理。但是它却是一个比较重要的功能,有了它我们可以解决一些重要的问题。 
首先,我们来了解一下两个比较重要的名称:模块变量 与 控制器变量 默认它的值分别是 m 和 c

看下图你就能很快的了解它们会出现在哪里
 
假设我们的地址是 http://yourdomain/e/extend/api/index.php?m=user&c=count GET参数为m=user&c=count m 与 c 就是我们所设置的 模块变量 与 控制器变量

在一般情况下,我们是不需要理会这个设置。但是我们在开发接口的时候,可能会碰到一些需要回调地址的接口(比如支付宝充值)。而这个回调地址的参数是由第三方(支付宝)提供的,如果这个回调地址中的参数恰好有m或者c就会引起冲突。所以我们此处的设置应该尽可能的取一些不常用的值来防止这个问题。

什么是模块

简单的讲,一个模块就是多个功能的集合。
举个例子:假设需要做一个微信公众号的api接口,这个接口中有 自动回复、菜单编辑、关注有奖等功能。那么这些功能的集合就是一个模块或称作一个接口(其实称作模块更为合适)

模块结构

一个模块对应一个文件夹(位于 /e/extend/api/ 下),而每个模块包含一个配置文件 _conf.php 一个模块公共函数文件 _function.php 和多个控制器文件,模块名称只能由小写英文字母组成。

模块管理

添加/编辑 管理模块信息及状态

管理/删除 管理模块下的控制器,若是删除模块将会删除该模块下所有的控制器。

开启/禁用 禁用模块下的所有控制器都无法仿问。

导入模块

因为一个模块对应一个文件夹,所以导入一个模块十分的简单。
1、将模块文件夹复制到插件/e/extend/api/目录下。
2、在后台添加一个模块,模块名称为模块的目录名称。

什么是控制器

我们将一个模块(API)看成一个家庭,那么控制器就是这个家庭中的人员。每个人都有各自的特色,可以完成不同的工作,既是一个独立的个体又依赖与服务于家庭。所以一个模块(API)具体可以做什么,其实是取决于控制器。

api.class.php 方法

publib_r

 $api->publib_r

 获取帝国公共配置,与全局变量$publib_r相等

empire

 $api->empire

 帝国数据库实例,用法与全局的$empire相同

load

 $api->load($name)

 加载指定的扩展库

param

 $api->param( $name , [ $default = '' , $fn = 'trim' ] )

 $name参数名称 $default默认值 $fn过滤函数名

 获取指定KEY值的GETPOST变量值,且优先获取GET

get

 $api->get( $name , [ $default = '' , $fn = 'trim' ] )

 $name参数名称 $default默认值 $fn过滤函数名

 获取指定KEY值的GET变量值

post

 $api->post( $name , [ $default = '' , $fn = 'trim' ] )

 $name参数名称 $default默认值 $fn过滤函数名

 获取指定KEY值的POST变量值

show

 $api->show( $str = '' , [ $type = 'text/html' , $charset = 'utf-8' ] )

 $str字符串 $type页面类型 $charset页面编码

 页面输出,完成后将执行exit

json

 $api->json( $arr , $options = 0)

 $arr数组/字符串 $options字符串处理类型

 将$arr转成json结构之后执行$api->show($json , 'text/json');

jsonp

 $api->json( $arr , $cb = 'callback' , $options = 0)

 $arr数组/字符串 $cb回调函数名称 $options字符串处理类型

 输出jsonp格式数据

error

 $api->error( $str , [ $code = 404 , $type = 'text/html' , $charset = 'utf-8' ])

 $str字符串 $code页面状态码 $type页面类型 $charset页面编码

 页面输出,并指定状态码。默认输出404页面

execute

 $api->execute($sql = '' , $exit = true)

 $sqlsql语句 $exit出错是否中断程序执行

 执行SQL语句,成功返回true,失败返回false

query

 $api->query($sql = '')

 $sqlsql语句

 执行sql语句(主要用于查询操作,返回由多条数据组成的数组)

one

 $api->one($sql = '')

 $sqlsql语句

 执行sql语句(主要用于查询操作,仅返回由一条数据组成的数组)

total

 $api->total($table= '' , $where = '')

 $table表名 $where条件(若值为true,则$table代表sql语句)

 数据统计

insert

 $api->insert($table , $data = '')

 $table 表名,无需前缀 $data 要写入的数据数组

 数据写入

select

 $api->select($table , $field = '*' , $where = '1' , $limit = 20 , $page = 1 , $orderby = '')

 $table 表名,无需前缀 $field 字段 $where 查询条件 $limit 每页显示数据量 $page 获取第几页的数据 $orderby 排序方式

 查询指定数据表的数据

update

 $api->update($table , $data = '' , $where = '0')

 $table 表名,无需前缀 $data 更新的字段数据 $where 条件

 数据更新。例如:将会员test的用户名改成dgapi $api->update('enewsmember' , $data = 'username="dgapi"' , $where = 'username="test"')

delete

 $api->delete($table , $where = '0')

 $table 表名,无需前缀 $where 条件

 删除数据

user_login (0.0.4已删除)

 $api->user_login($post)

 $post会员登陆所提交表单数组

 用于会员登陆,登陆成功返回当前会员数据,失败返错误编号 100参数错误 200帐号密码为空 201帐号密码不正确 202帐号不存在 203密码不正确 204帐号被锁定 300验证码为空 301验证码超时 302验证码不正确

user_logout (0.0.4已删除)

 $api->user_logout()

 会员登陆出操作

send_http_status

 $api->send_http_status($code)

 $code状态码

 指定页面的状态码

user.class.php

会员操作。使用前必须先导入类文件。导入方法 $userapi = $api->load('user');
下面我们以$userapi为例说明。

find

 $userapi->find($username , [$password='' , $all=false])

 $username会员用户名或会员ID , $password登陆密码,不为空需要则检测密码 , $all是否获取附表数据

 获取指定$username$userid的数据。成功返回数据,失败返回false

islogin

 $userapi->islogin([$all=true])

 $all是否返回附表数据

 判断是否已登陆,已登陆返回用户数据,未登陆返回false

login

 $userapi->login($user , [$time = 0])

 $user会员数据(数组,至少包含userid,groupid),$time 登陆状态保存时长

 将指定用户设置成登陆状态

register

 $userapi->register($data)

 $data待注册的会员信息,必须包含usernamepassword 且不能包含会员主表中不存在的字段

 会员注册。该操作会自动判断会员名是否已存在。注:此操作仅对会员主表写入,副表部分请在此操作成功后自行做更新处理。

logout

 $userapi->logout()

 退出登陆

has_username

 $userapi->has_username($username)

 $username用户名

 判断指定用户名是否已存在。

has_email

 $userapi->has_email($email)

 $email邮箱地址

 判断指定邮箱是否已存在。

verify_code

 $userapi->verify_code($name , [$code = false])

 $name验证码类型(login 或 reg) $code验证码字符串

 验证或设置验证码。$code不为false则为验证。

mark_password

 $userapi->mark_password($pw, $salt= '')

 $pw未加密前的密码 $salt加密混淆字符串

 将字符串转成密码,主要在注册、登陆、修改密码等有密码判断时用到。注(每个用户都有一个独立的salt)


推荐阅读

推荐阅读

大家都在看

回到顶部

下载声明 | 法律声明 | 版权声明 | 发布软件 | 网站地图

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件给 97623572@qq.com

   

'); })();