mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
response类添加transform方法用于指定数据转换方法
This commit is contained in:
@@ -13,6 +13,8 @@ namespace think;
|
|||||||
|
|
||||||
class Response
|
class Response
|
||||||
{
|
{
|
||||||
|
// 输出数据的转换方法
|
||||||
|
protected static $tramsform = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回数据到客户端
|
* 返回数据到客户端
|
||||||
@@ -37,20 +39,23 @@ class Response
|
|||||||
header('Content-Type:' . $headers[$type] . '; charset=utf-8');
|
header('Content-Type:' . $headers[$type] . '; charset=utf-8');
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($type) {
|
if (is_callable(self::$tramsform)) {
|
||||||
case 'json':
|
$data = call_user_func_array(self::$tramsform, [$data]);
|
||||||
// 返回JSON数据格式到客户端 包含状态信息
|
} else {
|
||||||
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
|
switch ($type) {
|
||||||
break;
|
case 'json':
|
||||||
case 'xml':
|
// 返回JSON数据格式到客户端 包含状态信息
|
||||||
// 返回xml格式数据
|
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
|
||||||
$data = \org\Transform::xmlEncode($data);
|
break;
|
||||||
break;
|
case 'jsonp':
|
||||||
case 'jsonp':
|
// 返回JSON数据格式到客户端 包含状态信息
|
||||||
// 返回JSON数据格式到客户端 包含状态信息
|
$handler = !empty($_GET[Config::get('var_jsonp_handler')]) ? $_GET[Config::get('var_jsonp_handler')] : Config::get('default_jsonp_handler');
|
||||||
$handler = !empty($_GET[Config::get('var_jsonp_handler')]) ? $_GET[Config::get('var_jsonp_handler')] : Config::get('default_jsonp_handler');
|
$data = $handler . '(' . json_encode($data, JSON_UNESCAPED_UNICODE) . ');';
|
||||||
$data = $handler . '(' . \org\Transform::jsonEncode($data) . ');';
|
break;
|
||||||
break;
|
default:
|
||||||
|
// 用于扩展其他返回格式数据
|
||||||
|
Hook::listen('return_data', $data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($return) {
|
switch ($return) {
|
||||||
@@ -62,7 +67,17 @@ class Response
|
|||||||
default:
|
default:
|
||||||
echo $data;
|
echo $data;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换控制器输出的数据
|
||||||
|
* @access public
|
||||||
|
* @param mixed $callback 调用的转换方法
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function tramsform($callback)
|
||||||
|
{
|
||||||
|
self::$tramsform = $callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user