dd()はdump and dieの略です。何をやるかというとLaravel用の便利なvar_dump();exit;です。
dd()の使い方はシンプル。Laravelフレームワークのphpコード内で次の様に記述するのみです。
dd(変数名A,変数名B,..)
これを実行した場合、次の図の様に渡した変数を読みやすい形で表示するhtmlコードが返されます。

特に便利なのは図にあるquery builderの様な巨大な構造体を読みたい時です。通常のvar_dump()で表示しようとした場合、とても読めたものではありません。var_dumpでは常に全展開の為、長いkeyと深いネストを持ってしまった場合、表示すら難しいです。
dd()の定義はvendor/laravel/framework/src/Illuminate/Support/helpers.phpにあります。
/**
* Dump the passed variables and end the script.
*
* @param mixed $args
* @return void
*/
function dd(...$args)
{
foreach ($args as $x) {
(new Dumper)->dump($x);
}
die(1);
}
dieはexitと同じなので読み飛ばしです。Dumperの中を追うとvendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.phpを読むことになります。
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
class Dumper
{
/**
* Dump a value with elegance.
*
* @param mixed $value
* @return void
*/
public function dump($value)
{
if (class_exists(CliDumper::class)) {
$dumper = in_array(PHP_SAPI, ['cli', 'phpdbg']) ? new CliDumper : new HtmlDumper;
$dumper->dump((new VarCloner)->cloneVar($value));
} else {
var_dump($value);
}
}
}
ここでSymfonyのvar_dumperに渡してLaravel自身のコードは終わります。Symfonyのvar_dumperの中は満足いくeleganceな表示を行うためにいくらか大きな処理をしています。CliDumper.phpだけで600行程、htmlDumperは900行程で記事に書き起こす程読み込む気力はありませんでした。