Looking to hire Laravel developers? Try LaraJobs

laravel-env-diff maintained by haseebmirza

Description
Show missing, extra, and empty .env keys compared to .env.example
Author
Last update
2026/08/06 14:53 (dev-main)
License
Links
Downloads
0

Comments
comments powered by Disqus

Laravel Env Diff

Latest Version on Packagist Total Downloads License

Stop guessing which env vars you're missing after git pull.

A zero-config Artisan command that compares your .env file against .env.example and instantly tells you what's missing, what's extra, and what's empty. One command. No setup. Works with Laravel 10, 11, 12, and 13.

php artisan env:diff
 WARN  2 missing keys (in .env.example but not in .env)

 +--------------+
 | Key          |
 +--------------+
 | REDIS_HOST   |
 | MAIL_FROM    |
 +--------------+

 INFO  1 extra key (in .env but not in .env.example)

 +--------------+
 | Key          |
 +--------------+
 | DEBUGBAR_ON  |
 +--------------+

 WARN  1 empty key (defined but no value)

 +--------------+
 | Key          |
 +--------------+
 | APP_KEY      |
 +--------------+

Why?

Every Laravel developer has been here:

  • You pull the latest changes
  • The app crashes with a cryptic error
  • 20 minutes later you realize someone added STRIPE_SECRET to .env.example and you never copied it over

This package catches that in 2 seconds.

It's the git diff for your environment file — simple, fast, and something every Laravel project should have.

Installation

composer require haseebmirza/laravel-env-diff --dev

That's it. The service provider is auto-discovered. No config files to publish, no migrations, no setup.

Usage

php artisan env:diff

What it detects

Check Description
Missing keys Keys in .env.example that are not in your .env — the ones that break your app
Extra keys Keys in .env that aren't in .env.example — might be stale or project-specific
Empty keys Keys that exist but have no value — easy to miss during setup

Custom file paths

Compare any two env files:

php artisan env:diff --example=.env.production --env=.env.staging

CI / CD Integration

The command returns exit code 1 when missing keys are detected, so you can use it as a CI gate:

GitHub Actions:

- name: Check env vars
  run: php artisan env:diff

GitLab CI:

check-env:
  script:
    - php artisan env:diff

Never deploy with missing environment variables again.

Requirements

  • PHP 8.1+
  • Laravel 10, 11, 12, or 13

Testing

composer test

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

The MIT License (MIT). Please see License File for more information.


Keywords: laravel env diff, laravel environment variables, dotenv compare, env.example sync, missing env keys, laravel artisan command, environment configuration, laravel devtools, env file checker, laravel env validator, dotenv diff, laravel env sync, env audit, environment file compare