Command to Quickly Show Config in Laravel

What if you need to see your config quickly in Laravel from the command line? And you don’t want to use Tinker? Let me show you how I do it…

First of all, I’m not sure if I should even write this entry. I kind of feel like this is cheating or not a “best practice” but I can’t put my finger on it. Maybe it’s because it’s never really a good idea to be plastering secrets to the screen. But anyway…

I don’t install Tinker on my production machine, so in that same vein it feels like I shouldn’t have a command to ‘debug’ config. But, if you’re caching your config, and you’ve ever forgotten to update it correctly, you know the struggle.

So, I wrote a quick command that I use:

namespace App\Console\Commands;

use Illuminate\Console\Command;

class ShowConfig extends Command
{
  protected $signature = 'config:show {key? : Only get this one key}';

  protected $description = 'Shows the config';

  public function handle()
  {
    if ($specifiedKey = $this->argument('key')) {
      $loop = [$specifiedKey => config($specifiedKey)];
    } else {
      $loop = config()->all();
    }

    foreach ($loop as $key => $config) {
      $this->info($key);
      dump($config);
      $this->newLine();
    }

    return Command::SUCCESS;
  }
}

Then, I can run php artisan config:show to see all of the config dumped out to the screen. Or, if I just want to see a specific key, I can run something like php artisan config:show services to see the services key.

Breaking it down, the command creates an array of either all of the config - or just a single key if the argument is specified. Then, it outputs an info line with the key name followed by dumping the config to the screen. Finally, a new line.

Again, reminder, do not run this where other people can see - you’re likely exposing your secrets to the screen.

Return to All Posts