它一套有thinkphp開發集成性後臺接口,內置權限管理,api響應,psysh等多功能工具
推薦一個thinkphp 權限管理包:php
https://github.com/surest-sky/thinkphp-permissionvue
他的做用git
利用它github
快速搭建基礎的 先後端分離場景下的後臺web
在線地址: http://v-web.surest.cn/sql
帳號: admin
密碼: admin123thinkphp
vue 地址 : https://github.com/surest-sky/thinkphp-vue-admin後端
git clone https://github.com/surest-sky/think-vue-admin-api.git cd think-vue-admin-api composer install 導入 目錄下的 `permission.sql`
php think init_permission --action reset
psysh 是什麼: http://vergil.cn/archives/psyshapi
> php think psysh \app\common\Example::psysh(); 輸出: 2 -> php think psysh \app\common\Example::init_permission(); 輸出: 更新節點完成
具體使用方法不詳說, 大概以下服務器
定義一個驗證器, 繼承 app\common\validate\BaseValidate
驗證數據
$validate = (new CircleValidate())->goCheck(); $data = $validate->validatedData(); # 獲取驗證經過的數據
而後經常使用的正則和一些方法均可以寫到 BaseValidate
中便可
例如經常使用驗證 ids
格式如 1,2,3,4 的數據能夠這樣獲取
# 校驗ids $validate = (new IdsValidate())->goCheck(); $ids = $validate->getIds();
$this->successed();
{
"msg": "success", "code": 200, "data": {}
}
$this->internalError();
{ "msg": "服務器錯誤", "code": 500, "data": {} }
$this->notFond();
{ "msg": "未找到", "code": 404, "data": {} }
$this->frobidden();
{ "msg": "未受權", "code": 401, "data": {} }
$this->failed();
{ "msg": "受權失敗", "code": 403, "data": {} }
在 BaseController
中
use ApiResponse;
繼承 BaseController
使用響應的時候, 直接 $this->successed($list);
具體的可見方法: appcommonTraitsApiResponse
在 app.php
中, 咱們接管了異常, 響應格式替換爲咱們的 ApiResponse
具體見方法, app\common\exception\Handler
異常處理控制後, 可定製化異常處理
見: http://surest.cn/archives/85/
簡單說明一下:
在handler.php
經過傳遞當前拋出異常的 exception
和咱們須要針對化處理的異常進行校驗, 採用的也就是 instanceof
去判斷來自於哪一個異常
這樣作的好處就是, 針對不用的異常進行監控, 並拋出指定的異常錯誤信息 或者 日誌
自定義的異常處理 必須 繼承 CustomExceptionInterface
接口, 經過 showMsg
來處理拋出異常
代碼中, 咱們會發現一個問題, 在 handler.php
中 異常信息是返回的, 官方文檔中有介紹, **使用異常處理接管的函數必須返回一個 response
響應, 因此能夠看到 在 BaseException
中
設置了 is_anomaly_andling_takeover
就是告訴 ApiResponse
須要返回一個response
響應
QQ 交流羣