它一套有thinkphp開發(fā)集成性后臺(tái)接口,內(nèi)置權(quán)限管理,api響應(yīng),psysh等多功能工具
推薦一個(gè)thinkphp 權(quán)限管理包:
https://github.com/surest-sky/thinkphp-permission
他的作用
自帶登錄校驗(yàn)
快速完成數(shù)據(jù)格式校驗(yàn)
自帶權(quán)限管理機(jī)制
支持權(quán)限管理自動(dòng)生成節(jié)點(diǎn)
自帶響應(yīng)格式處理
支持后端的菜單控制
利用它
快速搭建基礎(chǔ)的 前后端分離場(chǎng)景下的后臺(tái)
在線地址: http://v-web.surest.cn/
賬號(hào): admin
密碼: admin123
vue 地址 : https://github.com/surest-sky/thinkphp-vue-admin
git clone https://github.com/surest-sky/think-vue-admin-api.gitcd think-vue-admin-apicomposer install導(dǎo)入 目錄下的 `permission.sql`
php think init_permission --action reset
psysh 是什么: http://vergil.cn/archives/psysh
> php think psysh \app\common\Example::psysh(); 輸出: 2 -> php think psysh \app\common\Example::init_permission(); 輸出: 更新節(jié)點(diǎn)完成
具體使用方法不詳說, 大概如下
定義一個(gè)驗(yàn)證器, 繼承 app\common\validate\BaseValidate
驗(yàn)證數(shù)據(jù)
$validate = (new CircleValidate())->goCheck();$data = $validate->validatedData(); # 獲取驗(yàn)證通過的數(shù)據(jù)
然后常用的正則和一些方法都可以寫到 BaseValidate
中即可
例如常用驗(yàn)證 ids
格式如 1,2,3,4 的數(shù)據(jù)可以這樣獲取
# 校驗(yàn)ids$validate = (new IdsValidate())->goCheck();$ids = $validate->getIds();
$this->successed();
{ "msg": "success", "code": 200, "data": {} }
$this->internalError();
{ "msg": "服務(wù)器錯(cuò)誤", "code": 500, "data": {} }
$this->notFond();
{ "msg": "未找到", "code": 404, "data": {} }
$this->frobidden();
{ "msg": "未授權(quán)", "code": 401, "data": {} }
$this->failed();
{ "msg": "授權(quán)失敗", "code": 403, "data": {} }
在 BaseController
中
use ApiResponse;
繼承 BaseController
使用響應(yīng)的時(shí)候, 直接$this->successed($list);
具體的可見方法: app\common\Traits\ApiResponse
在 app.php
中, 我們接管了異常, 響應(yīng)格式替換為我們的 ApiResponse
具體見方法, app\common\exception\Handler
異常處理控制后, 可定制化異常處理
見: http://surest.cn/archives/85/
簡(jiǎn)單說明一下:
在handler.php
通過傳遞當(dāng)前拋出異常的 exception
和我們需要針對(duì)化處理的異常進(jìn)行校驗(yàn), 采用的也就是 instanceof
去判斷來自于哪個(gè)異常
這樣做的好處就是, 針對(duì)不用的異常進(jìn)行監(jiān)控, 并拋出指定的異常錯(cuò)誤信息 或者 日志
自定義的異常處理 必須 繼承 CustomExceptionInterface
接口, 通過 showMsg
來處理拋出異常
代碼中, 我們會(huì)發(fā)現(xiàn)一個(gè)問題, 在 handler.php
中 異常信息是返回的, 官方文檔中有介紹, **使用異常處理接管的函數(shù)必須返回一個(gè) response
響應(yīng), 所以可以看到 在 BaseException
中
設(shè)置了 is_anomaly_andling_takeover
就是告訴 ApiResponse
需要返回一個(gè)response
響應(yīng)
聯(lián)系客服