Laravel デバッグ

Laravel デバッグ

Laravel でデバッグするときの方法をいくつか見ていきます。

ヘルパメソッド

dd

dd は dump and die の略です
指定された変数の内容を表示し、スクリプトの実行を停止します。

dump

dump は指定した変数をダンプします。

SQLデバッグ

dd / dump

ddメソッドとdumpメソッドが使用できます。

enableQueryLog/getQueryLog

SQLとバインドされた値を確認

結果

toSql/getBindings

SQLとバインドされた値を確認

結果

Laravelデバッグバー

Laravelデバッグバーは Laravel のデバッグ用パッケージです。
PHP Debug Bar を Laravel 仕様にしたものとなります。

インストール

barryvdh/laravel-debugbar パッケージを composer でインストールします。
デバッグ用なので --dev をつけるようにします。

  • Laravel 6.x/7.x
  • Laravel 5.x

設定

  • Laravel 5.5 以降の場合、Package Auto Discovery でデバッグ用の設定ファイル config\debugbar.php が生成されます。

  • Laravel 5.4 以前の場合、config/app.php にサービスプロバイダーとファサードとして追記します。

  • 部分的な計測

    確認

    ウェブページを表示すると下部にデバッグバーが表示されます。

ログファイル出力

Log ファサード

  • Log::emergency($message);

  • Log::alert($message);

  • Log::critical($message);

  • Log::error($message);

  • Log::warning($message);

  • Log::notice($message);

  • Log::info($message);

  • Log::debug($message);

  • 任意の値

    storage\logs\laravel.log に出力されます。

query ログ

AppServiceProvider.php の register にログ出力の処理を追加します。

  • そのまま Query Time と Query を出力
  • バインド変数を置き換えて Query を出力

  • laravel-debugbar に合わせた Query 出力
    laravel-debugbar にある QueryCollector を使います。
    QueryCollector は、バインディング+タイミングを含むすべてのクエリを表示するコレクターです。

    ファイルを指定して出力する

    config/logging.php にクエリログ用に出力ログチャネルを追記します。

まとめ

Laravel Debugbar は画面表示と同時にデバッグ内容を確認できるので、開発時にはおすすめです。
クエリログなどはログファイルに出力するようにしておくと、チェックし易くなるかと思います。

参考リンク

Laravel 6.x ヘルパ

Laravel 6.x ログ

laravel-debugbar

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA