## 说明
20171016 文档以最新版本为实例
# 注意问题
## 处理用户抛出异常
按thinkphp框架规范,编写异常处理类,接手api访问异常
>用户抛出异常,就是指用abort(), throw new Expception()抛出来的异常。
>[warning]如在控制器中使用abort(404,'这是有问题',); 返回将不是json信息,对于api开发,这是一个问题,需要写异常处理来解决这个问题。
解决办法如下:
步骤
第一步: 在api模块中 编号扩展类【这里直接引用 官网收费文档实例】
`api\exception\Http`
Http.php代码发下
~~~
<?php
namespace app\api\exception;
use think\exception\Handle;
use think\exception\HttpException;
class Http extends Handle
{
public function render(\Exception $e)
{
if ($e instanceof HttpException) {
$statusCode = $e->getStatusCode();
}
if (!isset($statusCode)) {
$statusCode = 500;
}
$result = [
'code' => $statusCode,
'msg' => $e->getMessage(),
'time' => $_SERVER['REQUEST_TIME'],
];
return json($result, $statusCode);
}
}
~~~
第二步,用上面异常类接手系统默认异常处理类
配置文件 `config\api\config.php
~~~
<?php
//注意,需要配置为全局变量, 不能在return 中配置,作用于模块中的route不起作用
config('exception_handle','\app\api\exception\Http');
return [
];
~~~
## 解决访问操作不存在问题
在控制器目录下,建立 立 controller/Error.php
* [关于空操作官方文档](https://www.kancloud.cn/manual/thinkphp5_1/353982)
>[info]解决无对应操作问题
~~~
<?php
namespace app\api\controller;
use think\Request;
class Error
{
public function index(Request $request)
{
$msg = $request->controller();
return $this->msg($msg);
}
protected function msg($name)
{
return json(['code'=>'440','msg'=>$name]);
}
}
~~~
- 文档说明
- 5.1对比5.0.X版本需要注意点
- 待解答问题QA
- THINKPHP基础
- 常用技巧
- tp5.1系统信息
- 容器、Facade、依赖注入
- 其它要点记录
- 数据库与模型
- 数据集
- AQ问题集
- API开发
- restful开发
- restful测试之ZClient开发
- api开发
- 缓存
- 组件开发
- 采集组件ZSnoopy
- restful测试组件ZClient
- thinkphp各功能模块
- thinkphp-Log
- 队列thinkphp-Queue
- THINKPHP扩展
- 单元测试
- 类库库迁移工具Migration
- 命令行
- 关于console扩展要点
- 附录
- 第三方实用PHP库
- 实用IP库
- phpQuery库
- Guzzle库
- Markdown解释库Parsedown
- 上线的项目debug组件
- nette/utils实用函数库
- 推荐框架DolphinPHP
- Thinkphp之widget
- 表单组件form
- 前端框架推荐
- 推荐框架fastadmin
- PHP7最新语法
- 前端框架
- Echart
- mysql触发器
- PHP实用技巧与函数
- composer实用笔记