backdevs/dotenv-sniffer

用于检查未在 .env 文件中声明的环境变量的代码嗅探器

1.0.6 2024-03-10 04:22 UTC

README

Laravel Dotenv Sniffer

用于检查未在 .env 文件中声明的环境变量的代码嗅探器

GitHub Workflow Status GitHub release (latest SemVer)

header

在处理大型项目时,我们注意到 .env.example 文件往往会过时。
此工具提供了一种快速简单的方法,可以在 CI/CD 管道步骤、Git 钩子或其他最适合您项目的工具中持续检查您的代码与 .env 文件的一致性。

要求

用法

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 的 Laravelenv() 调用中的默认值变量视为警告
  • -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'],
    ],
];

vendor/bin/desniff -w .env.example config.php 的输出

image