API友好
新版ThinkPHP針對API開發做了(le)很多的優化,并且不依(yi)賴原來(lai)的API模式擴展。
數據輸出
新版的控制器輸出采用Response類統一處理,而不是直接在控制器中進行輸出,通過設置default_return_type或者動態設置不同類型的Response輸(shu)出就可以(yi)自動(dong)進(jin)行數據轉換處理,一(yi)般來(lai)說,你只需要在控制器中返回字(zi)符(fu)串或者(zhe)數組(zu)即(ji)可,例如如果我們配置:
'default_return_type'=>'json'
那么(me)下(xia)面的(de)控制(zhi)器方(fang)法返(fan)回值會自動(dong)轉(zhuan)換為(wei)json格式并返(fan)回。
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'ThinkPHP','url'=>'ThinkPHP.cn'];
return ['data'=>$data,'code'=>1,'message'=>'操作完成'];
}
}
訪問(wen)該請求URL地址后,最終(zhong)可以在瀏覽器中看到輸出結果如下:
{"data":{"name":"ThinkPHP","url":"ThinkPHP.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}
如果你需要(yao)返(fan)回其他的(de)數(shu)據(ju)格(ge)式的(de)話,控(kong)制器本身的(de)代碼無需做任何(he)改變(bian)。
支持明確指定輸出類型的方式輸出,例如下面指定JSON數據輸出:
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'ThinkPHP','url'=>'ThinkPHP.cn'];
// 指定(ding)json數(shu)據輸出
return json(['data'=>$data,'code'=>1,'message'=>'操作(zuo)完成']);
}
}
或者指定輸出XML類型數據:
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'ThinkPHP','url'=>'ThinkPHP.cn'];
// 指定(ding)xml數據輸(shu)出
return xml(['data'=>$data,'code'=>1,'message'=>'操作完成']);
}
}
核心支持的數據類型包括view、xml、json和jsonp,其他類型的需要自己擴展。
錯誤調試
由于API開發不方便在客戶端進行開發調試,但ThinkPHP1的Trace調試功能支持Socket在(zai)內的(de)方(fang)式,可(ke)以實現遠程的(de)開發調試。
設置方式:
'app_trace' => true,
'trace' => [
'type' => 'socket',
// socket服務(wu)器
'host' => 'slog.ThinkPHP.cn',
],
然后安裝chrome瀏覽器插(cha)件后即可進行遠程調(diao)試,詳細(xi)參考(kao)調(diao)試部分。
文檔最后更新時間:2018-04-25 17:52:42
← Traits引入
未解決你的問題?請到「問答社區」反饋你遇到的問題
