- A+
需求:利用ThinkPHP5 实现接口的需要定义统一的返回格式
定义ShowCode类
namespace app\common\toole; use think\Config; use think\Request; //定义默认的返回消息 static protected $defaultReturn = [ 'code' => '404', 'msg' => '未知服务器消息', 'data' => [], ]; class ShowCode { }
返回码方法
/** * 返回码主方法 * @param string $code 返回码 * @param array $data 返回值 * @param string $msg 返回消息的说明 * @param array $append 附加信息 * @return array */ static public function code($code = '', $data = [], $msg = '') { $return = self::$defaultReturn; if (empty($code)) { return $return; } else { $return["code"] = $code; } $return["data"] = $data; if (!empty($msg)) { $return['msg'] = $msg; } else { $return['msg'] = self::getCodeMsg($code); } return $return; }
通过code值映射msg信息
public static function getCodeMsg($code) { $code_msg = Config::get("returnCode"); $single_extra_code = Config::get(strtolower(Request::instance()->module())."ReturnCode"); if(isset($code_msg[$code])) { return $code_msg[$code]; }elseif(null !== $single_extra_code&& is_array($single_extra_code) && isset ($single_extra_code[$code])) { return $single_extra_code[$code]; } else{ return ''; } }
无data返回消息
/** * 别名方法 无data返回值 * @param string $code * @param string $msg * @return array */ static public function codeWithoutData($code = '', $msg = '') { return self::code($code, [], $msg); }
返回json格式
/** * 别名方法 返回json格式返回码 * @param string $code * @param string $msg * @return array */ static public function jsonCode($code = '', $data = [], $msg = '') { self::returnJsonType(); return self::code($code, $data, $msg); }
无data返回json格式
/** * 别名方法 返回json格式返回码 无data值 * @param string $code * @param string $msg * @return array */ static public function jsonCodeWithoutData($code = '', $msg = '') { self::returnJsonType(); return self::code($code, [], $msg); }
定义json返回头信息
static public function returnJsonType() { Config::set("default_return_type", "json"); }