2017-05-02 38 views
5

Böyle ENV_VER olarak .env.master bir değişkeni oluşturarak uygulama önyükleme zamanında yüklemek ne env dosya belirterek, böyle bir şey yapmak planya ediyorum = dev.envLaravel 5 yükleme env dosyası .env.master dayalı?

ben gibi birçok şubesi var olmasıdır geliştirme, sürüm 1.1 ve vb. Böylece, env dosyasını bir ana env dosyasında belirtilen isme göre yükleyerek, geliştiricilerin yeni değişkenleri .env'nin yerel kopyasına kopyalayıp yapıştırmak zorunda kalmazlar ve bunun yerine hangi sürüme sahip olduklarını belirtmeniz yeterlidir. ana env dosyasında yüklenecek env dosyası. Bu arada, dev.env, 1.6.env gibi birçok env dosyalarım var.

Mümkün mü?

+0

Sorununuzdan emin değilim ama aynı amaçla .env dosyasında yorum kullandığımda, [bu soru] 'yı kontrol edin (http://stackoverflow.com/questions/32368016/how-to-comment-in-laravel-env -file) –

+0

Aradığım şey değildi ama yine de cevabınız için teşekkürler. – AlexZai

cevap

4

Kesinlikle kendim bir çerçeveyi her zaman biraz "eğilme" eğilimim var ve her zaman bir yol var, her zaman en iyi çözüm olsa da. Burada bütün bir uygulama yapmıyorum, sadece sizi bir yöne işaret ediyor, bu sizin için işe yarayabilir.

için appplication bootstrap sırasında yüklenen ya da muhtemelen işlev loadEnvironmentFrom($file) veya environmentFile() geçersiz $environmentFile değişken depolama ortamı dosyasını içeren laravel baz uygulama sınıfı Illuminate\Foundation\Application, uzanabilir. Bütün mantık size kalmış.

Yani temelde tüm

uzanan yeni bir uygulama sınıfı oluştur ... sırayla "oynat" .env yükleniyor ile edebilmek için yapmanız gereken laravel en tek:

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'; 

    ... 
} 

Ve şimdi, Yeni bir önyükleme sınıfımız olduğu için, Laravel'i kullanmak istediğimizi söylemeliyiz. Yani yeni bir örneği yaratılıyor nerede noktasında bootstrap/app.php dosyasını değiştirmek gerekecek:

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

Not: İlham için ben gerçekten Illuminate\Foundation\Application sınıfa bakmak tavsiye ederiz.

+0

Bu işe yarıyor ... Yaşasın @vo Hrádek –

+0

Evet, yapmak istediklerime çok yakındı. Ayrıca, burada da belirtmiştim: http://developers.ph/laravel-framework/laravel-5/how-to-setup-multiple-environment-for-laravel-5-developers-way/ – AlexZai