Skip to content

Latest commit

 

History

History
66 lines (43 loc) · 2.39 KB

README.ja.md

File metadata and controls

66 lines (43 loc) · 2.39 KB

概要

設定のキャッシュと環境に関するチェックを強化します

説明

設定がキャッシュされているときの明示的な環境の指定の禁止

Laravelはartisanコマンドの--envオプションやAPP_ENV環境変数で環境を指定できますが、 設定がキャッシュされているときはそれらの指定が無視されます。

これは潜在的に危険なので、設定がキャッシュされているときは--envオプションやAPP_ENV環境変数による環境の指定を禁止します。

config:cacheコマンドへの環境の指定の禁止

config:cacheコマンドにより設定のキャッシュを生成するときに、--envオプションやAPP_ENV環境変数による環境の指定を禁止します。 従って、キャッシュできるのは.envファイルに記述されたデフォルトの環境のみとなります。

生成時の.envファイルとの整合性チェック

キャッシュを生成するときに使用した.envファイルのチェックサムを保存し、現在の.envファイルのものと一致するか チェックします。一致しない場合はエラーにします。

除外コマンド

artisanコマンドには環境に依存しないものもあるので、それらについてはチェック対象から除外します。

除外するコマンドを増やしたいときは、config/env_check.phpexcluded_commandに追加することが出来ます。

インストール

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

以下のコードを bootstrap/app.phpreturn $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();
            }
        );

  • 設定がキャッシュされているとき:
% 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