## 說明
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
* [關于空操作官方文檔](http://www.hmoore.net/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實用筆記