crhg/laravel-env-check

v1.2.3 2018-04-11 06:12 UTC

This package is auto-updated.

Last update: 2024-09-21 20:33:26 UTC


README

增强配置缓存和环境检查。

描述

禁止在配置缓存时指定显式环境

Laravel的环境可以通过 artisan 命令的 --env 选项或 APP_ENV 环境变量来指定,但在配置缓存时指定的环境会被忽略。

由于这可能是危险的,当配置被缓存时,禁止使用 --env 选项或 APP_ENV 环境变量来指定环境。

禁止为 config:cache 命令指定环境

使用 config: cache 命令生成配置缓存时,禁止使用 --env 选项或 APP_ENV 环境变量来指定环境。因此,只能缓存 .env 文件中描述的默认环境。

.env 文件的一致性检查

当生成配置缓存时保存 .env 文件的校验和。检查它是否与当前 .env 文件匹配。如果不匹配,将发生错误。

排除检查的命令

一些 artisan 命令不依赖于环境,因此排除它们进行检查。

如果您想添加一些要排除的命令,请使用 config/env_check.php 中的 excluded_command 设置。

安装

composer require crhg/laravel-env-check
php artisan vendor:publish --provider='Crhg\EnvCheck\Providers\EnvCheckServiceProvider'

bootstrap/app.php 中的 return $app 之前添加以下代码;

        $app->singleton(\Crhg\EnvCheck\EnvChecker::class);

        $app->beforeBootstrapping(
            \Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
            function ($app) {
                $checker = $app->make(\Crhg\EnvCheck\EnvChecker::class);
                $checker->examineEnvironmentVariables();
            }
        );

示例

  • 如果 local 环境被缓存
% php artisan migrate:status --env=foo
Don't use --env option when configuration is cached
  • 如果在 config:cache 之后修改了 .env
% php artisan migrate:status
.env hash unmatch