Laravelでデバッグする方法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
Laravel のでデバッグする方法について、こうしたらいいんじゃないか?という方法を紹介してみます。
デバッグとは?
今回の記事では、
プログラムの不具合を、正しく動作するように修正することを指します。
blade を使っているときのデバッグ方法(API 以外)
基本的に dd()という関数を使ってデバッグすれば良いと思います。
dd は何をするのか?
処理をそこで止めて、変数の中身を確認することができます。
dd で処理を止めることによってエラーの場所が詳細になる
dd は処理を止めて変数を出力するため、
「エラーの場所を詳細にすること」ができます。
やみくもに関数内を修正するのではなく、具体的にどの行でエラーになっているのかが分かるとだいぶ違うと思います。
エラー原因のコードのあとに dd()をしてもエラーが表示されるので、
「もっと前が原因なんだな」と認識することができます。
コントローラーで dd を使う
$users = User::all();
dd($users);
//結果
// Illuminate\Database\Eloquent\Collection {#1039 ▼
#items: array:6 [▶]
// }
views(blade)で dd を使う
blade ファイルでも変数を使うとエラーが出ます。
そのときにも使えます。
//bladeファイル
{{ dd($users) }}
blade の場合、処理が止まる以前のコードは読まれているので、表示が中途半端に読み込まれる感じになります。
API のときのデバッグ方法
エラーの内容を確認する方法
初期設定であれば、
storage/logs/laravel.log
にエラーの内容が保存されています。最新のものは一番下にあるはずです。
変数のデバッグ方法
一番簡単なのは、レスポンスを return してしまう方法です。
return 以降の処理は進行しないので、dd と同じようにバグの位置をより詳細にすることができます。
$users = User::all();
return response()->json(compact('users'),200);
//これ以降は進まない
$posts = Post::matigatterukoudo();
上記のコードであれば、今現在 users の変数はどのような内容なのか分かります。
変数のデバッグ方法 ②
処理を止めずに変数の内容を確認する方法です
\Log::info($users);
このように書くとログファイルに出力することができます。
storage/logs/laralve.log を確認すると、変数の中身が出力されています。
まとめ
以上です。
自分なりのデバッグ方法などを書いてみました。
API のときは Postman などを使うとサクサク検証できるのでオススメです。
何かご意見ご感想などある方は Twitter から DM をお願いします!
それでは!
人気記事