Laravelのデバッグ方法で有名なのが「Laravel Debugbar」です。
このパッケージはフロントエンド向けの開発で使用されており、API開発では使用できません。
そこで利用するのが「Clockwork」です。
こちらのページでは実際にClockworkをインストールして、デバッグする方法について解説していきます。
LaravelにClockworkをインストールする
まずはClockworkパッケージをインストールします。
以下のコマンドを実行してください。
composer require itsgoingd/clockwork
完了したら、以下のコマンドを実行してみてください。
php artisan route:list
すると「__clockwork」とついたルートが追加されているかと思います。
追加されているのを確認したら、以下のURLにアクセスしてみてください。
http://localhost/__clockwork/app#
※「_(アンダーバー)」が2つ続いています
Laravelの公開URLが「http://localhost」である前提で書いています。
公開URLが違う場合は公開URLに「/__clockwork/app#」をつけてアクセスしてみてください。
Clockworkの専用画面が表示されて、Laravelの実行内容など確認できるようになっています。
実行するのにかかった時間、実行されたSQL、Log出力した内容、リクエストの内容などなどが見えるようになっています。
ClockworkでLog出力する
設定したら、実際にコード内でログ出力していきます。
clock(出力内容);
上記関数を使用することでClockworkのログ画面で内容を確認できます。
Laravel標準で用意されている「Log();」を使っても出力されますが、内容が少し見づらいです。
なので、Clockworkを使ってデバッグする場合はclockworkを使用するのがおすすめです。
実際に見え方を比較してみるとこのようになります。
上がClockwork、下がLogを使用したものになります。
これは単純なので良いですが、複雑な配列やJSONになると見にくくなるためclock関数を使用するのが良いかと思います。
より詳しい使用方法は公式ページを載せておくので、そちらを参照してください。
Clockworkの便利なポイント
clock関数は引数を複数追加でき、1行で複数のログ出力ができる
また、clock関数は、複数の引数を入れることで、1行でlogを残せます。
例えばこのようになります。
clock(変数1,変数2,変数3…)
clock関数は第一引数をreturnする関数
また、第一引数の値がreturnされるので、実際に使用している関数内で直接的に使用できるのが、便利なポイントとなります。
$a = 1;
$b = clock($a);
// $a = $b = 1
わざわざログだけのために行を追加せず、デバッグ前提でコードを書いておけば無駄なコードも増えません。
※clockworkは「APP_DEBUG=false」のときには表示されません