php通信软件培训,小蚂蚁学习APP接口开发(3)—— 统一调用入口方式封装通信接口...

在类文件中包含了json返回数据的方法和xml返回数据的方法,在调用的时候需要调用不同的方法来实现不同类型数据的返回,今天再增加一个show()方法,作为一个统一调用的入口,只需要给它传入不同的参数就可以实现不同类型的数据返回了,比较方便。

class Response{

//设置一个常量作为类型的一个默认值

const TYPE='json';

/***********************************

*统一调用入口,$type参数为调用的类型,可以是json、xml、array打印数组使用等

*$param integer $code 状态码

*$param string  $message 提示消息

*$param array   $data 具体数据

*$param  string $type 返回类型

*return  mixed 根据类型返回

*

******************************/

public static function show($code,$message='',$data=array(),$type=self::TYPE){

//做出一个验证,如果不是数字,就返回空

if(!is_numeric($code)){

return '';

}

//把传送进来的三个值,组装成一个数组

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data

);

//这一步的设计目的:可以通过地址栏get传参的方式从外部获取数据,非常灵活

$type = isset($_GET['showtype'])?$_GET['showtype']:$type;

switch ($type) {

case 'json':

//如果是json,则返回json数据

self::json($code,$message,$data);

break;

case 'xml':

//如果是xml,这返回xml数据

self::xml($code,$message,$data);

break;

case 'array':

//如果传进来的值是array,这打印出这个数组

var_dump($result);

break;

default:

#根据需要,处理业务逻辑

echo '不能识别信息';

break;

}

}

/***********************************

*返回json格式数据

*$param integer $code

*$param string  $message

*$param array   $data

*return json

*

******************************/

public static function json($code,$message='',$data=array()){

//做出一个验证,如果不是数字,就返回空

if(!is_numeric($code)){

return '';

}

//把穿进来的三个值,组装成一个数组

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data

);

//json_encode()把数组转化成json格式输出

echo json_encode($result);

exit;

}

/***********************************

*返回xml格式数据

*$param integer $code

*$param string  $message

*$param array   $data

*return json

*

******************************/

public static function xml($code,$message='',$data=array()){

//做出一个验证,如果不是数字,就返回空

if(!is_numeric($code)){

return '';

}

//把穿进来的三个值,组装成一个数组

$result=array(

'code'=>$code,

'message'=>$message,

'data'=>$data

);

//便于浏览器输出xml格式文件

header('content-type:text/xml');

//拼接xml

$xml.="<?xml  version='1.0' encoding='UTF-8' ?>";

$xml.='';

$xml.=self::xmlToEncode($result);//获取组装好的xml数据

$xml.='';

echo $xml;

exit;

}

public static function xmlToEncode($arr){

//准备一个接收的空数组

$xml='';

//将这个数组的键,作为节点名称,值作为内容

foreach ($arr as $key => $value) {

/*约定一个规则,如果键是数字的话,格式为aaa*/

if(is_numeric($key)){

$attr=" id='{$key}'";//属性的值需要带上引号,不然报错

$key='item';

}

$xml.="";

//如果$value的值是个多维数组的话,需要递归遍历

$xml.=is_array($value) ? self::xmlToEncode($value) : $value;

$xml.="{$key}>";

}

return $xml;

}

}

$array=array(

'name'=>'学PHP的小蚂蚁',

'age'=>'27',

'sex'=>'male',

'url'=>'博客 http://my.oschina.net/woshixiaomayi/blog',

'like'=>array(

'eat'=>'apple',

'drink'=>'milk',

'happy',

'lucky'

)

);

Response::show(200,'success',$array,'array');

/*

打印出来的样子

200

success

学PHP的小蚂蚁

27

male

http:博客 //my.oschina.net/woshixiaomayi/blog

apple

milk

happy

lucky

*/

?>

封装数据通信接口的方法基本上就是这个样子了,道理还是挺简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值