LoginSignup
0
0

More than 1 year has passed since last update.

Laravelで主に使用してきたデバック方法

Last updated at Posted at 2023-01-29

前置き

Laravelでの開発をスムーズに進めるために必要な方法になると思います。
実務経験から主に使っているデバック方法を紹介します。

紹介するデバック

以下3つを紹介します。

・dd()
・dump()
・Logファザード(Log::~)

dd()とdump()はビューに出力を行い、Logファザードはlogs/laravel.logに出力されます。

dd()

dd()は、使用した時点で処理を終了させます。
その為、それ以降の処理を行うことはありません。

      $array = [
                 'a' => 'あ',
                 'i' => 'い'
             ];
      dd($array);// ここで処理止まる

      $a = $array['a'];

上記の場合、最後の行の$aの部分の処理は行われません。
🔽出力結果
スクリーンショット 2023-01-29 13.16.56のコピー.png

dump()

dump()は、使用した時点での内容を表示します。
dd()とは違い、使用した後の処理も継続しておこなわれます。

      $array = [
                 'a' => 'あ',
                 'i' => 'い'
             ];
      dump($array);// ↓このあとも処理継続

      $a = $array['a'];

上記の場合、ビューに処理結果を表示しつつ、$arrayの内容もビューに表示されます。
🔽出力結果
スクリーンショット 2023-01-29 13.16.56のコピー.png
dd()を使用した時と表示方法は同じです。

dd()とdump()の併用

dd()とdump()を使うこともできます。

      $array = [
                 'a' => 'あ',
                 'i' => 'い'
             ];
      dump($array);// ↓このあとも処理継続

      $array['u'] = 'う';

      dd($array);

上記のどうなるでしょうか?
最初にdump()の内容が出力され、その後にdd()の内容が出力されます。
🔽出力結果
スクリーンショット 2023-01-29 13.16.56.png
$arrayの内容が変わっていることを確認することができます。

Logファザード(Log::~)

dd()のように、使用した時点で後続処理が止まることはありません。

Logファザードは、8つのログレベルが存在しています。
ログレベルは、以下の記事を参考にするとわかりやすいでしょう。
Laravel 8.x ログ

      $a = 'a';
      Log::info($a);

      // 出力結果: a

配列やオブジェクトの場合は、文字列にしてから表示する必要があります。

      $array = [
                 1 => 'one',
                 2 => 'two'
             ];
      Log::info(json_encode($array));
      
      // 出力結果: {“1”:“one”,“2”:“two”}

まとめ

変数など確認できる方法を知っておくと、開発がスムーズになります。
参考の1つになれば幸いです。

参考文献

Laravel 8.x ログ
json_encode-Manual-PHP
Laravelでできるいろいろなデバッグ方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0