2017-05-02 9 views
5

ENV_VER = dev.envのような.env.masterに変数を作成することで、アプリケーションのブートストラップ時に読み込むenvファイルを指定するようにしています。Laravel 5 .env.masterに基づいてenvファイルをロードしますか?

これは、したがって、envファイルをマスターenvファイルに指定された名前に基づいてロードすることで、開発者は新しい変数を.envのローカルコピーにコピーして貼り付ける必要はなくなりました。 envファイルをマスターenvファイルにロードします。ちなみに、私はdev.env、1.6.envなどのいくつかのenvファイルを持っています。

それは可能ですか?

+0

あなたの問題についてはわかりませんが、私は同じ目的のために.envファイル内のコメントを使用して、[この質問](http://stackoverflow.com/questions/32368016/how-to-comment-in-laravel-env -file) –

+0

これは私が探していたものではありませんでしたが、とにかくあなたの返事に感謝します。 – AlexZai

答えて

4

間違いなく、私自身は毎回フレームワークを少しずつ曲げていますが、常に方法がありますが、必ずしも最善の解決策ではありません。私はここに全体の実装を与えているわけではありません。

あなたはappplicationブートストラップ時にロードされるか、おそらく機能loadEnvironmentFrom($file)またはenvironmentFile()を上書き$environmentFile変数保存環境のファイルが含まれているLaravelの基本アプリケーションクラスIlluminate\Foundation\Applicationを、拡張することができます。全体の論理はあなた次第です。そこで、基本的

あなたは.envロードにある「再生」できるようにするために必要なこと...

はLaravelの1を拡張し、新しいアプリケーションクラスを作成します。

namespace MyNamespace; 
... 

use Illuminate\Foundation\Application as App; 

/** 
* I'm doing alots of magic with .env in this class 
*/ 
class Application extends App 
{ 
    ... 

    /** 
    * The environment file to load during bootstrapping. 
    * 
    * @var string 
    */ 
    protected $environmentFile = '.env.main'; 

    ... 
} 

そして今、新しいをブートストラップするクラスがあるので、私たちはLaravelにそれを使いたいと伝える必要があります。注

... 
$app = new MyNamespace\Application(
    realpath(__DIR__.'/../') 
); 
... 

:あなたは、新しいインスタンスが作成される時点でbootstrap/app.phpファイルを変更する必要がありますので、インスピレーションのために私はあなたが本当にIlluminate\Foundation\Applicationクラスを見てお勧めします。

+0

これはうまくいくはずです。@IvoHrádek –

+0

ええ、これは私がやりたいことに非常に近いものでした。また、私はここでも参照しています:http://developers.ph/laravel-framework/laravel-5/how-to-setup-multiple-environment-for-laravel-5-developers-way/ – AlexZai

関連する問題