对于app,小程序接口这块,要提供一个制定的函数或者类去提供给他返回数据,
话不多说,上代码,此类复制,粘贴到tp5 / tp5.1 的extend/org,文件名为 ApiReturn.php:目录下就能用 :
<?php
/**
* Created by PhpStorm.
* User: hj
* Date: 2019/3/23
* Time: 11:05
*/
//声明一个命名空间,
namespace org;
//声明一个类
class ApiReturn{
//类里面的常量,这里定义类成员变量
private $type;
private $data;
/*
* @param type 返回数据类型
* */
public function __construct($type = 'json')
{
$this->type =$type;
}
/**
* @param $code int 状态码
* @param $msg string 返回数据信息
* @param $data array|string 返回的数据
* @return 返回数据的信息 json or xml
* */
public function returnMsg($code = 500,$msg ='失败',$data=[]){
if (!$this->data){
$this->data = ['code'=>$code,'msg'=>$msg,'data'=>$data];
}
switch ($this->type){
case 'json':
header("Content-type:application/json;charset=utf-8");
echo json_encode($this->data,true);die;
}
}
/**
* @param $code int
* @return 当前类对象
* */
public function setCode($code){
$this->data['code'] = $code;
return $this;
}
/**
* @param $msg string 使用单一模板
* @return 当前类对象
* */
public function setMsg($msg){
$this->data['msg'] = $msg;
return $this;
}
/**
* @param $data string |array 使用单一模板
* @param $elseData string|array 额外返回的数据,便于维护,又不想改动已经设置好的data
* @return 当前类对象
* */
public function setData($data,$elseData =[]){
$this->data['data'] = $data;
if (is_array($elseData) && $elseData){
$this->data = $elseData ? array_merge($this->data,$elseData):$this->data;
}else{
$this->data['elseData'] = $elseData;
}
return $this;
}
//这个魔术方法就不讲了
public function __get($name)
{
// TODO: Implement __get() method.
return isset($this->data[$name])?$this->data[$name]:false;
}
//这个魔术方法就不讲了
public function __set($name, $value)
{
// TODO: Implement __set() method.
$this->data[$name] = $value;
}
}
很多已经写在方法里了,注释,很全,