它一套有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 交流群