0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初学者向け Laravel6デバッグ方法

Last updated at Posted at 2021-11-04

Laravel6 初心者デバッグまとめ

概要

Laravelを使った初めての開発でデバッグに使用した方法をまとめます。

動作環境:Laravel6

デバッグバーの導入

デバッグバーでは、Queriesで発行されているSQLの確認ができたり、ViewsでBladeのファイルを確認できたりします。リクエスト情報も確認できるので、テストコードを書かずにすぐに確認できるのが便利です。

image.png

$ composer require barryvdh/laravel-debugbar --dev

設定ファイル

.env

// オン
APP_DEBUG=false
// オフ
APP_DEBUG=true

※.envを編集して設定が変わっていなかったらキャッシュを削除する

php artisan config:cache

デバッグに使う関数(PHP)

dump()

シンプルに中身だけを表示する

$test = array(1,2,3,4)
dump($test)

// 結果
array:4 [
 0 => 1
 1 => 2
 2 => 3
 3 => 4
]

var_dump()

$test = array(1,2,3,'あ','い','う')
var_dump($test)

// 結果
array(6) {
 [0]=> int(1)
 [1]=> int(2)
 [2]=> int(3)
 [3]=> string(3) "あ"
 [4]=> string(3) "い"
 [5]=> string(3) "う"
}

変数の型まですべて出力される。HTML側に出力されるため、ログには出すことができない。

var_export()

Log::info(var_export($test, true));

HTML側には何も表示されない。
ログに出力される。

varの使い分け

ログに出力したいかどうかで使い分ける

var_dump var_export
出力 HTML ログファイル
リダイレクト
ログにファイル出力することで、リダイレクトする場合でもデバッグが出来るメリットがある。

Laravelのヘルパー関数

Laravelフレームワークが用意している便利な関数。
自分で作成することも出来る。
PHP単体では動作しない。

dd()

基本的にdump()と同じ。
dumpと違い呼び出すと処理が止まる。

明確にどこでエラーが出ているかがわからないときに使うと一個ずつ検証できて便利。

ddはシンプル

$test = array(1,2,3,4);
dd($test);

結果
image.png

ddd()

dddも呼び出すと処理が止まる。
dddは()の中身以外の情報も見ることが出来る。
image.png

Stack trace Request App User Context Debug
処理の順番 リクエストの情報 実行したメソッド情報 ログイン中のユーザー情報 config系の情報 ddd()の中身
ddd()は処理の全体を一発で見ることが出来るので便利

ログの出力

ファサードで出力

上に行くほど重要度が高

use Illuminate\Support\Facades\Log;

Log::emergency('emergency');
Log::alert('alert');
Log::critical('critical');
Log::error('error');
Log::warning('warning');
Log::notice('notice');
Log::info('info');
Log::debug('debug');

// 結果(ログファイル)
local.EMERGENCY: emergency
local.ALERT: alert
local.CRITICAL: critical
local.ERROR: error
local.WARNING: warning
local.NOTICE: notice
local.INFO: info
local.DEBUG: debug

設定ファイル
config/logging.php
ログファサードを使用してログファイルに出力することで、var_exportと同様に、HTMLに表示する必要がないので、リダイレクトした場合でもデバッグが出来る。

まとめ

Laravelの開発で使ったデバッグ方法をまとめました。

参考記事

https://zenn.dev/shimotaroo/articles/738d8e01796bc9
https://techblog.recochoku.jp/5438

https://reffect.co.jp/laravel/laravel-logging-setting

デバッグバー導入

https://qiita.com/rf_p/items/8d25b25b712a52390657

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?