php api応答フォーマットデータフォーマットResponseクラス
/**
* Created by PhpStorm.
* User:
* Date: 2018/10/9
* Time: 11:49
*/
//
class Response
{
/**
*
*/
const JSON="json";
/**
*
* @param $code
* @param $message
* @param array $data
* @param string $type (json.xml,array)
* @return array|string
*/
public static function show($code,$message,$data=array(),$type=self::JSON){
// ,return
if(!is_numeric($code)){
return '';
}
// url format ,
// $type
$type=isset($_GET['format'])?$_GET['format']:$type;
//
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
// $type
if($type=="json"){
self::jsonToEncode($code,$message,$data);
}elseif($type=="xml"){
self::xmlToEncode($code,$message,$data);
}else{
//
return $result;
}
}
/**
* json
* @param $code
* @param $message
* @param array $data
*/
public static function jsonToEncode($code,$message,$data=array()){
$data=[
'code'=>$code,
'message'=>$message,
'data'=>$data
];
echo json_encode($data);
exit;
}
/***
* xml
* @param $code
* @param $message
* @param array $data
*/
public static function xmlToEncode($code,$message,$data=array()){
$result=[
'code'=>$code,
'message'=>$message,
'data'=>$data
];
header("Content-Type:text/xml");
$xml="xml version='1.0' encoding='UTF-8' ?>";
$xml.="<root>";
$xml.=self::xmlEncode($result);
$xml.="root>";
echo $xml;
}
/**
* , xml
* @param $data
* @return string
*/
public static function xmlEncode($data){
$xml=$attr="";
foreach($data as $key=>$value){
// , <item id={ }>{value}item>
if(is_numeric($key)){
$attr="id='{$key}'";
$key="item";
}
$xml.="";
// , $value
$xml.=is_array($value)?self::xmlEncode($value):$value;
$xml.="{$key}>";
}
return $xml;
}
}
$data=[
'id'=>1,
'name'=>'ocean',
'type'=>array(1,2,3=>[4,5,6])
];
Response::show(200,"success",$data,'xml');