\PhalApi_Api

PhalApi_Api 接口服务基类

  • 实现身份验证、按参数规则解析生成接口参数等操作
  • 提供给开发人员自宝义的接口服务具体类继承


通常地,可以这样继承:

 class Api_Demo extends PhalApi_Api {

     public function getRules() {
         return array(
             // ...
         );
     }

     public function doSth() {
         $rs = array();

         // ...

         return $rs;
     }
 }

Summary

Methods
Properties
Constants
__set()
__get()
init()
getApiRules()
getRules()
$whatever
No constants found
createMemberValue()
filterCheck()
userCheck()
isServiceWhitelist()
equalOrIngore()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$whatever

$whatever : mixed

接口参数

Type

mixed

Methods

__set()

__set(string  $name, mixed  $value) 

设置规则解析后的接口参数

Parameters

string $name

接口参数名字

mixed $value

接口参数解析后的值

__get()

__get(string  $name) : mixed

获取规则解析后的接口参数

Parameters

string $name

接口参数名字

Throws

\PhalApi_Exception_InternalServerError

获取未设置的接口参数时,返回500

Returns

mixed

init()

init() : null

初始化

主要完成的初始化工作有:

  • 1、[必须]按参数规则解析生成接口参数
  • 2、[可选]过滤器调用,如:签名验证
  • 3、[可选]用户身份验证

Returns

null

getApiRules()

getApiRules() : array

取接口参数规则

主要包括有:

  • 1、[固定]系统级的service参数
  • 2、应用级统一接口参数规则,在app.apiCommonRules中配置
  • 3、接口级通常参数规则,在子类的*中配置
  • 4、接口级当前操作参数规则

当规则有冲突时,以后面为准。另外,被请求的函数名和配置的下标都转成小写再进行匹配。

Returns

array

getRules()

getRules() : array

获取参数设置的规则

可由开发人员根据需要重载

Returns

array

createMemberValue()

createMemberValue() 

按参数规则解析生成接口参数

根据配置的参数规则,解析过滤,并将接口参数存放于类成员变量

filterCheck()

filterCheck() 

过滤器调用

可由开发人员根据需要重载,以实现项目拦截处理,需要:

  • 1、实现PhalApi_Filter::check()接口
  • 2、注册的过滤器到DI()->filter


以下是一个简单的示例:

    class My_Filter implements PhalApi_Filter {

        public function check() {
            //TODO
        }
    }

 //在初始化文件 init.php 中注册过滤器
 DI()->filter = 'My_Filter';

Throws

\PhalApi_Exception_BadRequest

当验证失败时,请抛出此异常,以返回400

userCheck()

userCheck() 

用户身份验证

可由开发人员根据需要重载,此通用操作一般可以使用委托或者放置在应用接口基类

Throws

\PhalApi_Exception_BadRequest

当验证失败时,请抛出此异常,以返回400

isServiceWhitelist()

isServiceWhitelist() : boolean

是否为白名单的服务

Returns

boolean

equalOrIngore()

equalOrIngore(string  $str, string  $cfg) : boolean

相等或忽略

Parameters

string $str

等判断的字符串

string $cfg

规则配置,*号表示通配

Returns

boolean