iMiral adlı üyeden alıntı: mesajı görüntüle
.env dosyası uygulamanın bulunduğu sunucuya göre ayarlanıyor. örnek olarak local sunucunuzda mysql bilgileri dışa açık olmadığı için basit/varsayılan kullanıcı adı şifreler ile tanımlıdır, yayın sunucusunda uygulamanın ihtiyacı olan yetkilerle oluşturulmuş kullanıcı ve güçlü/komplike bir parola tanımlıdır, sunucu.env dosyasında onu tanımlarsınız, uygulamanız eposta atıyorsa mesela local'de test smtp kullanıcı bilgileri vardır, sunucu .env dosyasında bunu uygulama kullanıcılarına no-reply@ şeklinde eposta ile gönderecekseniz o bilgileri girebilirsiniz vs.



config dosyasından hard code şeklinde tanımlamak kod revize için işlevsiz bir kullanım olur, production'a taşınmaması gerektiği tavsiyesini kim verdiyse ya yanlış bilgilendirmiş ya da siz yanlış anlamışsınız. .env dosyası farklı cihazlardaki ayarları tek bir dosyada tanımlamak için kullanılır, production sunucuda .env dosyasına dışarıdan erişemez zaten kimse, apache'nin yayın dizininin dışında olan bir dosya.
Doğru kullanım ve yapılandırmalarda erişilemiyor doğrudur hocam. Bende projelerimde .env üzerinde tutuyorum fakat okuduğum bazı yabancı makalelerde bazı dork lar ile bu env erişilebildiği yazıyordu. Ayrıca laravel in kendi dökümantasyonunda bunun bir zaafiyete neden olabileceği belirtiliyor (bkz: https://laravel.com/docs/5.4/configuration ) Tabii bu laravel kaynaklı bir zaafiyet değil , hatalı kullanım veya sunucu ayarlarının hatalı yapılması sonucunda olur diye düşünüyorum.

Birden fazla kişinin çalıştığı bir projede zaten .env olmasa sürekli config klasörünü local e göre düzenlemek vs işkence olur.