日誌巨集

前言

我們會用 Laravel 內建的 Response 去回應服務的訊息,我們可能會用的回應會像這樣:

// 建立 JSON 回應
return Response::json(['name' => 'KeJyun', 'Country' => 'Taiwan']);
return response()->json(['name' => 'KeJyun', 'Country' => 'Taiwan']);


// 建立 JSONP 回應
return Response::json(['name' => 'KeJyun', 'Country' => 'Taiwan'])
                 ->setCallback($request->input('callback'));
return response()->json(['name' => 'KeJyun', 'Country' => 'Taiwan'])
                 ->setCallback($request->input('callback'));


// 建立檔案下載的回應
return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);
return response()->download($pathToFile)->deleteFileAfterSend(true);

在這樣的使用下,我們可以很容易的回應訊息給使用者,但是在伺服器發生程式例外錯誤 (Exception) 時,我們可能也需要回應像是這樣的資料:

return Response::json(['status' => 'failure', 'error_code' => '5566']);
return response()->json(['status' => 'failure', 'error_code' => '5566']);

在我們用 Laravel 做 API 給手機用的時候,更需要有這些錯誤狀態的資料,所以我們沒辦法直接像網頁一樣跳出整個的錯誤 debug 畫面

但我們若想在 API 回應給手機這樣的錯誤資訊時,也能夠將例外錯誤記錄下來,以便我們進行除錯,我們可以做一個 Response 的巨集,去處理紀錄我們的回應

建立服務提供者

我們在命令列輸入 php artisan make:provider ResponseServiceProvider 建立回應的服務提供者

$ php artisan make:provider ResponseServiceProvider

該服務提供者檔案會被建立在 app/Providers/ResponseServiceProvider.php 中,命名空