Laravelでデバッグするときに、ddヘルパーではなく、dddヘルパーというものがあることを知りました。
通常のエラーが発生したときにも使用されている画面にて表示してくれるものです。
今回、この記事では
dddヘルパーの使い方や、それぞれのタブに出力される内容について
そして、Flareサービスを使ってエラー内容を共有する方法などの内容で記事を書いています。
Laravelでのデバッグについて
VSCodeのPHPデバッグの設定はこちらの記事に書きました。

dddヘルパーの他にもddヘルパーやvar_dumpなどを使って画面出力することができます。
それぞれ違うところは、出力して表示される形式が違います。
また、画面ではなく、ログに出力して確認するという方法もあります。
ddヘルパーについてはこちらの記事に書きました。
今回はdddヘルパーを使って、どんな出力形式になるのか確認してみたいと思います。
dddヘルパーについて
dddヘルパーはLaravelのバージョン6以降から登場しました。(デフォルトで使えるようになっています)
なので、Laravelをインストールして、すぐ使えるのはバージョン6以降からです。
facade/ignitionライブラリに含まれているようです。githubはこちらです。
dddヘルパーを使ってみる
実際に使うときは、ddヘルパーと同じようにdddヘルパーを呼び出して、出力したい値を渡します。
$fruits = collect(['apple', 'grape', 'lemon']);
ddd($fruits);
下記のように複数渡すことも可能です。
$fruits = collect(['apple', 'grape', 'lemon']);
$user = new User();
$user->name = "taro";
ddd($fruits, $user);
実際に画面を確認すると、このように複数出力されました。
Debugタブがデフォルトで表示されます。

それぞれ、渡した内容が出力されていることが確認できました。
三角のアイコンを押すと、それぞれ閉じられている内容を確認することが可能です。
dddヘルパーで表示される画面を確認
dddヘルパーで表示された、それぞれのタブクリックして画面を確認します。
Stack trace / Request / App / User / Context / Debug といった6つのタブが表示されています。
Stack traceを確認する
スタックトレースでは、どこでエラーがでたかということを追うことが可能です。
dddヘルパーで出力した時は、出力された箇所が表示されます。

右側に出力されたところのコードが、ハイライトされて出てきます。
エラーだった場合はエラーのコードがハイライトされます。
左側が実際にエラーが出るまでに通ってきた箇所のトレースですね。
表示されているコードからエディターを開く
表示されているコードにフォーカスすると、鉛筆マークが表示されます。
鉛筆マークをクリックするとエディタを開いて、その位置にフォーカスしてくれます。
このエディターがデフォルトではPhpStormになっていますが、「.env」に下記のように書いておけば別のエディタにできます。
下記はVSCodeで開くようにしてみました。
IGNITION_EDITOR=vscode
サポートしているエディタは下記になります。
vendor/facade/ignition/config/ignition.phpのコメントに書いてありました。
Supported: “phpstorm”, “vscode”, “vscode-insiders”, “vscodium”, “textmate”, “emacs”,
“sublime”, “atom”, “nova”, “macvim”, “idea”, “netbeans”,
“xdebug”
Requestを確認する
リクエストされたURLやメソッド、ヘッダーの内容やクッキーの中身など、HTTPリクエストの内容がまるっと確認できる感じですね。

Appを確認する
エラーが出力されたWebアプリケーションのエラー箇所のコントローラーやビューが確認できるようです

Userを確認する
リクエストしたユーザーのUser DataとIP AddressとUser-agentが確認できます。
User DataはLaravelでログインしている場合に、ユーザーの情報が表示されます。

Contextを確認する
Laravelのバージョンやロケール設定、PHPのバージョンなんかも見れました。

エラー箇所を共有する
Flareというサービスを使って、エラー箇所を共有することが可能です。
まず、Shareというタブを押すと下記のようになるので、「share」をクリックします。

「Open public share」もしくは「Open share admin」でURLが発行されます。
Shareボタンを押してから「Open public share」を押します。

URLが発行されてアクセスすると下記のような画面になります。

「Open share admin」だと下記のような画面になります。
adminモードだと、共有したエラーページを消せるようです!(delete shareから)

普通のエラー共有のURLの有効期限はいつまでか調べたのですがわかりませんでした。。
これはいつまでなのだろうか…何かわかる方はぜひコメントいただけると嬉しいです🤯
便利ではありますが、オープンでないコードで使うと危険な機能な気がします。
URLが漏れたりしたら…🤯
公開されているコードでエラー内容を共有したい時は、すごく便利そうなので、是非使いたいと思いました。
darkモードにする
その他の小技として、darkモードも搭載されています😄
darkモードにするには、「.env」に下記のように設定します。
IGNITION_THEME=dark
実際に画面を見てみると、こんな感じです。

おわりに
dddヘルパーで出力される内容を確認していきました。
ddではスタックトレースなどが表示されませんでした。
dddではトレース内容などを表示してくれるので、開発時にtry catch箇所などに仕込んでおくとエラーが出た時に原因調査しやすそうです。
エラー箇所の共有は便利ですが、使い方を間違えると問題になりそうなので、気をつけたいところです。


コメント