nunomaduro@website:~
« Back
Written by Nuno Maduro on September 23, 2022
7

How I've Added The Source File And Line To Laravel's "dd" function

Next week, on Laravel v9.32.0, we are going to improve the dd function output adding the source file/line next to the dumped output.

DD Example

Some people have asked me how is possible to get the source file/line from the dd function call, so in this article, I going to share some details about this pull request: github.com/laravel/framework/pull/44211.

PHP has an insane power function called debug_backtrace. This function tells the chain of events that led up to the call to debug_backtrace.

So, if our dd function originally looked something like this:

function dd($var)
{
    die(var_dump($var));  // dump the output...
}

dd('foo'); // string(3) "foo"

We can make use of the debug_backtrace to print the source file/line right before dumping the output:

function dd($var)
{
    $trace = debug_backtrace();

    $file = $trace[0]['file']; // The original "file" where the `dd` call was made...
    $line = $trace[0]['line']; // The original "line" where the `dd` call was made...

    echo "// $file:$line\n"; // print the source file:line...

    die(var_dump($var));
}

dd('foo');
// my-app/index.php:14
// string(3) "foo"

And that’s it! Please refer to PHP’s official documentation to learn more about this function.


I hope you have enjoyed this article. If yes, please consider supporting my work — my mission is to spend more time maintaining the dozens of projects that I've written/collaborated on over the years and continue developing new projects to make PHP development more productive and enjoyable.

github.com/sponsors/nunomaduro