Laravel .env dosyasında array kullanmak

Laravel .env dosyasında array/dizi kullanmak gibi bir özelliğe ihtiyacımız olmuştu, ancak böyle bir özellik desteklenmiyordu. Bunun için birkaç ekstra bir kaç koddan yararlandık ve kendi çözümümüzü ürettik, bir ayraç ve explode() fonksiyonu.


Örnek kullanım ve kodlar

.env dosyasından örnek kullanım

LANGS=en|gb

config dosyasından örnek kullanım
'langs' => explode('|', env('LANGS', 'en|gb')),

var_dump çıktısı
array [
    0 => "en"
    1 => "gb"
]

LANGS=en olarak sadece tek değer kullanırsak
array [
    0 => "en"
]

Görüldüğü üzere çıktı her zaman array olmaktadır, kodlarımızı yazarken buna dikkat etmek gerekiyor.

 

Biraz daha kurcalayıp dizi tek elemanlı ise sadece bu elemanı string olarak alabiliriz, aksi halde dizi olarak alacağız. Bunun için bir helper fonksiyonu yazabiliriz.

function envArray($var)
{
    $var = explode('|', $var);

    return (count($var) == 1) ? $var[0] : $var;
}

Bundan sonra config dosyalarında kullanım şu şekilde olacaktır
'langs' => envArray(env('LANGS', 'en|gb')),

Bir Cevap Yazın