Every two weeks I send out a newsletter containing lots of interesting stuff for the modern PHP developer. You can expect quick tips, links to interesting tutorials, opinions and packages. Want to learn the cool stuff? Then sign up now!

Quickly dd anything from the commandline

Laravel’s tinker command allows to run any code you want as if you are inside your Laravel app. But if you want to run a single line of code if can be a bit bothersome. You must start up tinker, type the code, press enter, and quit tinker.

Our new spatie/laravel-artisan-dd package contains an Artisan command to dd anything from the commandline. No need to start and quit tinker anymore.

Here’s a simple example of how you can use it:

You can dd anything you want. Of course the output will be pretty printed. Here’s an example where an Eloquent model is dumped.

Multiple pieces of code can be dumped in one go:

php artisan dd "bcrypt('secret')" "bcrypt('another-secret')"; 

The dd artisan command using PHP’s eval to run arbitrary code. Be aware that this can be potentially dangerous. By default the command will only run in a local environment. You can make it run in other environments by setting an ALLOW_DD_COMMAND enviroment variable to true.

If you like this package go check it out on GitHub. This isn’t the first package our team has made. Go check out this big list of Laravel packages on our company website to learn if we’ve made anything that could be of use to you.

Freek Van der Herten is a partner and developer at Spatie, an Antwerp based company that specializes in creating web apps with Laravel. After hours he writes about modern PHP and Laravel on this blog. When not coding he’s probably rehearsing with his kraut rock band.
  • daylerees

    Cool addition mate 🙂 I wonder if it might be possible to add a switch to the existing tinker command to do the same. Effectively run the REPL with a single command and exit. Could be a good opportunity to push a new feature into the codebase.

  • Pingback: Quickly dd anything from the commandline - Laravel Questions()

  • Paul Hendry

    you can also configure a bash alias for even quicker typing ie dd “bcrypt(‘ss’)” instead of php…