ホーム

転職ドラフト(次回10/20)

Laravelでデバッグする方法

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

⇨ Laravel 記事の目次はこちら

Laravel のでデバッグする方法について、こうしたらいいんじゃないか?という方法を紹介してみます。

目次

  1. デバッグとは?
  2. blade を使っているときのデバッグ方法(API 以外)
  3. API のときのデバッグ方法

デバッグとは?

今回の記事では、

プログラムの不具合を、正しく動作するように修正することを指します。

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 でパンくずリストを実装する