PHPackages                             backdevs/dotenv-sniffer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. backdevs/dotenv-sniffer

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

backdevs/dotenv-sniffer
=======================

A code sniffer for environment variables not declared in .env files

1.0.6(2y ago)339[3 issues](https://github.com/backdevs/laravel-dotenv-sniffer/issues)[1 PRs](https://github.com/backdevs/laravel-dotenv-sniffer/pulls)MITPHPPHP ^8.1

Since Mar 9Pushed 1y ago2 watchersCompare

[ Source](https://github.com/backdevs/laravel-dotenv-sniffer)[ Packagist](https://packagist.org/packages/backdevs/dotenv-sniffer)[ Docs](https://github.com/backdevs/laravel-dotenv-sniffer)[ RSS](/packages/backdevs-dotenv-sniffer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (13)Used By (0)

Laravel Dotenv Sniffer
======================

[](#laravel-dotenv-sniffer)

A code sniffer for environment variables **not** declared in `.env` files

[![GitHub Workflow Status](https://camo.githubusercontent.com/e66fd1bf90cfbcb15d864ed431631ae89e17da576c2ec797dbc2dcbc9abb8aec/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6261636b646576732f6c61726176656c2d646f74656e762d736e69666665722f746573742e796d6c3f6c6162656c3d7465737473)](https://github.com/backdevs/laravel-dotenv-sniffer/actions/workflows/test.yml)[![GitHub release (latest SemVer)](https://camo.githubusercontent.com/bdf879a8113e810821010c6308463297972c47ebb53a1278d5e108a8c53daa0e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6261636b646576732f6c61726176656c2d646f74656e762d736e69666665723f6c6162656c3d6c6174657374)](https://github.com/backdevs/laravel-dotenv-sniffer/releases/latest)

[![header](resources/readme/header.png)](resources/readme/header.png)While working on large projects we've noticed that `.env.example` files would often get outdated.
This tool provides a fast and simple way of constantly checking your code against `.env` files either as a step in your CI/CD pipeline, a Git hook or whatever works best for your project.

---

Requirements
------------

[](#requirements)

- [PHP](https://www.php.net/downloads) `^8.1`
- [Tokenizer extension](https://www.php.net/manual/en/book.tokenizer.php)

Usage
-----

[](#usage)

### Docker (recommended)

[](#docker-recommended)

Inside your app's root directory, run:

```
docker run -t --rm -v $(pwd):/app backdevs/desniff:latest .env.example ./config ./app
```

### Composer dependency

[](#composer-dependency)

```
composer require --dev backdevs/dotenv-sniffer
```

```
vendor/bin/desniff .env.example ./config ./app
```

### PHAR

[](#phar)

```
curl -fsSL https://github.com/backdevs/php-dotenv-sniffer/releases/latest/download/desniff.phar -o /tmp/desniff
```

```
chmod +x /tmp/desniff
```

```
/tmp/desniff .env.example ./config ./app
```

Options and Arguments
---------------------

[](#options-and-arguments)

Options

- `--no-fail` - Don't fail if errors are found (exit code = 0)
- `-w | --warn-with-default` - Treat variables with default values in [Laravel](https://laravel.com/)'s [`env()`](https://laravel.com/docs/10.x/helpers#method-env) calls as warnings
- `-c | --fail-code` - The exit code to use when failing (default: 1), useful in CI/CD pipelines

Arguments

- `env-file` - The .env file to check against (e.g.: `.env`, `.env.example`, `.env.dev`)
- `paths` - One or more files and/or directories to check

Simple Example
--------------

[](#simple-example)

### The `.env.example` file:

[](#the-envexample-file)

```
APP_NAME=DotenvSniffer

DB_HOST=localhost
```

### The `config.php` file:

[](#the-configphp-file)

```
