Laravel’in sunduğu güzel özelliklerden biri de root dizinde bulunan .env dosyasıdır. Çünkü bu dosya .gitignore içerisinde tanımlı olduğundan github, bitbucket gibi repository’lere push yapıldığında gönderilmez. Böylece api_token gibi veritabanı dosya şifreleri gibi önemli bilgiler bu dosya içerisinde saklanmalıdır.
//.env dosya içeriği (örnek)
anahtar_ismi=deger
APP_KEY=35R34543534534
googecloud_projectid=456546453
Bu dosyanın içerisindeki bir anahtar’ın değerini okumak için uygulama içerisinde her yerden:
env('anahtar_ismi'); // çıktı olarak değeri yazacak.
kullanarak çağırabiliriz; ama bir istisna var. Eğer
php artisan config:cache
ile config dosyalarını belleğe yükletirsek bu env foksiyonunu uygulamamızın her yerinden artık kullanamayız. Kullanırsak null değeri yollar. Sadece config klasörü içerisinde bulunan dosyalar içerisinde kullanabiliriz. Şöyle: settings.php adında bir dosya oluşturup ana dizin içerisinde bulunan config klasörü içerisine atın. Dosya içerisine de şunu yazalım:
//settings.php dosya içeriği:
return [
'app_key' = > env('APP_KEY'),
'googecloud_projectid' => env('googecloud_projectid') // env içerisinde tanımladığınızı farz ediyorum.
];
Bu şekilde config klasörü içerisinde oluşturulan dosyalar içinde env fonksiyonunu kullanabiliriz. (php artisan config:cache yapsak bile.) Bunu da tüm uygulama boyunca şu şekilde çağırırız (blade şablonlarda dahil):
config('settings.app_key'); // app_key'i yazacak.
config('settings.googecloud_projectid'); //googecloud_projectid değerini yazacak.
Böylece config:cache işleminden sonra oluşacak env fonksiyonunun null değer gönderme sorunsalını bu şekilde aşabiliriz.
Etiketler: