CodeBlanks Logo Icon CodeBlanks

Environment yönetimi

PHP kursu · Uzman · Ders 47/54

.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

  1. 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]);
    
  2. 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
  3. 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.

Uzman bölümündeki tüm dersler