Environment yönetimi
.env dosyası ve getenv() ile ortam değişkenlerini yönetmeyi öğrenirsin.
Ortam değişkenleri
Ortam değişkenleri (environment variables) yapılandırmayı koddan ayırır: veritabanı parolası, API anahtarı, hata ayıklama bayrağı gibi değerler koda gömülmez.
PHP'de tek bir değişkeni getenv('APP_ENV') ile okursun; tümünü $_ENV süperglobali taşır. putenv('KEY=value') ile yeni değişken tanımlayabilirsin.
.env dosyası KEY=VALUE satırlarından oluşur; parse_ini_file ile bir dizi olarak yükleyebilirsin.
.env dosyasını ayrıştırmak
parse_ini_file('.env') dosyayı okur ve ['APP_ENV' => 'production', 'DEBUG' => '0'] gibi birleşik dizi döndürür. Satır başına # yorum sayılır.
Değerleri $_ENV içine yazmak istersen $_ENV[$key] = $val ataması yaparsın; böylece getenv ile değil doğrudan süperglobalden okursun.
Üretimde .env depoya işlenmez; dağıtım sırasında sunucuya ayrıca konur. Yanlışlıkla commit edilirse sır sızar.
Uygulama .env üret ve oku
PHP ile .env dosyası üret: içine APP_ENV=production ve DEBUG=0 satırlarını file_put_contents ile yaz. Sonra parse_ini_file ile oku ve her anahtar-değeri KEY=value biçiminde ekrana bas.
Örnek çözümü göster
Önce file_put_contents(".env", "APP_ENV=production\nDEBUG=0\n"); ile dosyayı yaz. Sonra $env = parse_ini_file(".env"); ile oku. foreach ($env as $key => $val) { echo $key . "=" . $val . "\n"; } ile yazdır.
Örnek çözüm:
<?php
// .env dosyasını üret ve oku
file_put_contents(".env", "APP_ENV=production\nDEBUG=0\n");
$env = parse_ini_file(".env");
foreach ($env as $key => $val) {
echo $key . "=" . $val . "\n";
}
Kendini test et
-
getenv çağrısını tamamla
<?php $env = ____('APP_ENV'); print_r(["env" => $env]);Cevabı göster
<?php $env = getenv('APP_ENV'); print_r(["env" => $env]); -
Ortam değişkeni araçlarını eşleştir
- getenv
- Tek değişken okur
- $_ENV
- Süperglobal dizi
- parse_ini_file
- Dosyayı okur
- putenv
- Değişken tanımlar
-
Hangi fonksiyon .env dosyasını dizi olarak yükler?
- file_get_contents
- parse_ini_file
- fopen
- require
Cevabı göster
parse_ini_file — Doğru. parse_ini_file .env dosyasını KEY => VALUE dizisine çevirir.