前置き
Laravelでの開発をスムーズに進めるために必要な方法になると思います。
実務経験から主に使っているデバック方法を紹介します。
紹介するデバック
以下3つを紹介します。
・dd()
・dump()
・Logファザード(Log::~)
dd()とdump()はビューに出力を行い、Logファザードはlogs/laravel.logに出力されます。
dd()
dd()は、使用した時点で処理を終了させます。
その為、それ以降の処理を行うことはありません。
$array = [
'a' => 'あ',
'i' => 'い'
];
dd($array);// ここで処理止まる
$a = $array['a'];
上記の場合、最後の行の$aの部分の処理は行われません。
🔽出力結果
dump()
dump()は、使用した時点での内容を表示します。
dd()とは違い、使用した後の処理も継続しておこなわれます。
$array = [
'a' => 'あ',
'i' => 'い'
];
dump($array);// ↓このあとも処理継続
$a = $array['a'];
上記の場合、ビューに処理結果を表示しつつ、$arrayの内容もビューに表示されます。
🔽出力結果
dd()を使用した時と表示方法は同じです。
dd()とdump()の併用
dd()とdump()を使うこともできます。
$array = [
'a' => 'あ',
'i' => 'い'
];
dump($array);// ↓このあとも処理継続
$array['u'] = 'う';
dd($array);
上記のどうなるでしょうか?
最初にdump()の内容が出力され、その後にdd()の内容が出力されます。
🔽出力結果
$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でできるいろいろなデバッグ方法