Laravelではdd()
というヘルパー関数をデバッグでよく使用しますが、ddd()
は初耳です。なぜなら、Laravel 6.xバージョンで新登場したデバッグの関数だからです。
dd()
新登場のddd()
の比較のためと、Laravel 6.xの以前のバージョンのために、まずdd()
の使用を見てみましょう。
dd()
を以下のように追加すると、
Route::get('/', function () { $user = App\User::first(); dd($user); return view('welcome'); });
以下のように実行を止めて、引数で指定した変数の情報をブラウザに表示してくれます。
その時点で、実行した関数のスタックトレースをしたいなら、
Route::get('/', function () { $user = App\User::first(); dd(print_r(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS),true));//面倒なら、debug_backtrace(2)でもOK return view('welcome'); });
とすると、
Array ( [0] => Array ( [file] => /vol1/usr/www/repos/repos/l6x/vendor/laravel/framework/src/Illuminate/Routing/Route.php [line] => 205 [function] => {closure} [class] => Illuminate\Routing\RouteFileRegistrar [type] => -> ) [1] => Array ( [file] => /vol1/usr/www/repos/repos/l6x/vendor/laravel/framework/src/Illuminate/Routing/Route.php [line] => 179 [function] => runCallable [class] => Illuminate\Routing\Route [type] => -> ) [2] => Array ( [file] => /vol1/usr/www/repos/repos/l6x/vendor/laravel/framework/src/Illuminate/Routing/Router.php [line] => 681 [function] => run [class] => Illuminate\Routing\Route [type] => -> ) ...
ddd()
さて、Laravel 6.xのバージョンのddd()
ヘルパーを使用すると、
Route::get('/', function () { $user = App\User::first(); ddd($user); return view('welcome'); });
以下のように、とても見やすいUIで出力してくれます。
そればかりでなく、関数スタックのトレースもメニューを選択して表示してくれます。しかも、Laravel内部での関数の実行を隠して(拡張して見ることも可能)開発した関数だけを見せてくれます。
こういう便利な機能を追加してくれると、Laravelをアップグレードするモチベーションが上がりますね。
メルマガ購読の申し込みはこちらから。