Laravel

Laravelでデバッグする方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ 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 をお願いします!

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する