Laravel

LaravelのAPI開発でデバッグする方法

Laravelのデバッグ方法で有名なのが「Laravel Debugbar」です。
このパッケージはフロントエンド向けの開発で使用されており、API開発では使用できません。

そこで利用するのが「Clockwork」です。

こちらのページでは実際にClockworkをインストールして、デバッグする方法について解説していきます。

LaravelにClockworkをインストールする

まずはClockworkパッケージをインストールします。
以下のコマンドを実行してください。

composer require itsgoingd/clockwork

完了したら、以下のコマンドを実行してみてください。

php artisan route:list

すると「__clockwork」とついたルートが追加されているかと思います。
追加されているのを確認したら、以下のURLにアクセスしてみてください。

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」のときには表示されません

-Laravel
-, ,