一般我们开发接口就是返回客户端需要的json数据,但是未免显得有些low,还不如我们自己定义一套函数用的舒服。
废话不多说,马上开始!
方法一:先定义几个常用的错误状态码
/**
* 获取错误代码对应的提示信息
* @param: $code int 错误代码
* @return: string
*/
function codeInfo($code){
$codeInfo = array(
100 => '未登录',
125 => '账号错误',
130 => '密码错误',
200 => '成功',
400 => '参数错误',
160 => '此账号禁止登陆',
401 => '未认证',
404 => '未找到',
900=>'未注册',
901=>'不支持'
);
if($codeInfo[$code]){
return $codeInfo[$code];
}else{
return '';
}
}
方法二:定义成功时返回数据函数
/**
* 返回成功
* @param: $data array 需返回的数据
* @param: $msg string 提示信息
* @return:
*/
function successReturn($data = array(), $msg = "", $exit = true) {
$data = (object)$data;
echo json_encode(array(
"result" => "success",
"Code" => 200,
"msg" => $msg ? $msg : "成功",
"data" => $data,
));
if ($exit ) {
exit;
}
}
方法三:定义失败时返回数据函数
/**
* 返回失败
* @param: $failCode int 错误代码
* @param: $msg string 提示信息
* @param: $data array 需返回的数据
* @return: void
*/
function failReturn($failCode, $msg = '', $data = array(), $exit = true) {
$data = (object)$data;
$returnArray = array (
'result' => 'fail',
'Code'=>$failCode,
'msg' => $msg?$msg:codeInfo($failCode),
'data' => $data,
);
echo json_encode ($returnArray);
if($exit){
exit;
}
}
方法四:记录非致命类型的错误
/**
* 出现非致命错误时记录错误日志
* @param:
* @return:
*/
function errorLog(){
$error = error_get_last();
if ($error && stristr($error['file'], 'FS_APP/') && !stristr($error['message'], 'Undefined index:') && $error['type'] != 8) {
logs('errorLog' . date('YmdHis'), $error);
}
}
方法五:
/**
* 日志记录
* @param: $name string 日志文件名称
* @param: $data string/string 接口返回数据
* @return:
*/
function logs($name = '',$data = '',$path = ''){
if (!$name) {
$name = 'log' . date('YmdHis');
} else {
$logPath = DIR_FS_APP . 'cache/debug/';
}
if (!$path) {
$logPath = DIR_FS_APP . 'cache/history/';
if (is_dir($logPath) == false) {
mkdir(DIR_FS_APP . 'cache/history/');
chmod(DIR_FS_APP . 'cache/history/', 0777);
}
}
@file_put_contents($logPath.$name.'.txt',$dataStr,FILE_APPEND);
}