backdevs / dotenv-sniffer
用于检查未在 .env 文件中声明的环境变量的代码嗅探器
1.0.6
2024-03-10 04:22 UTC
Requires
- php: ^8.1
- ext-tokenizer: *
- symfony/console: ^6.0|^7.0
- symfony/stopwatch: ^6.0|^7.0
- symfony/validator: ^6.0|^7.0
- vlucas/phpdotenv: ^5.0
Requires (Dev)
- ext-intl: *
- phpspec/prophecy: ^1.3
- phpspec/prophecy-phpunit: ^1.1|^2.0
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
- symfony/var-dumper: ^6.2|^7.0
README
Laravel Dotenv Sniffer
用于检查未在 .env
文件中声明的环境变量的代码嗅探器

在处理大型项目时,我们注意到 .env.example
文件往往会过时。
此工具提供了一种快速简单的方法,可以在 CI/CD 管道步骤、Git 钩子或其他最适合您项目的工具中持续检查您的代码与 .env
文件的一致性。
要求
- PHP
^8.1
- Tokenizer 扩展
用法
Docker (推荐)
在您的应用程序根目录中运行
docker run -t --rm -v $(pwd):/app backdevs/desniff:latest .env.example ./config ./app
Composer 依赖关系
composer require --dev backdevs/dotenv-sniffer
vendor/bin/desniff .env.example ./config ./app
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
选项和参数
选项
--no-fail
- 如果找到错误则不失败(退出代码 = 0)-w | --warn-with-default
- 将 Laravel 的 Laravel 的env()
调用中的默认值变量视为警告-c | --fail-code
- 失败时使用的退出代码(默认:1),在 CI/CD 管道中很有用
参数
env-file
- 要检查的 .env 文件(例如:.env
、.env.example
、.env.dev
)paths
- 一个或多个要检查的文件和/或目录
简单示例
.env.example
文件
APP_NAME=DotenvSniffer DB_HOST=localhost
config.php
文件
<?php use Illuminate\Support\Env; return [ 'app' => [ 'name' => env('APP_NAME'), 'key' => Env::get('APP_KEY', sprintf('base64:%s', base64_encode('example'))), ], 'mysql' => [ 'host' => env('DB_HOST', 'localhost'), 'username' => getenv('DB_USERNAME'), 'password' => \Illuminate\Support\Env::get('DB_PASSWORD', 'secret'), 'database' => $_ENV['DB_DATABASE'], ], ];