Laravel 5.2 - Dot ENV (Environment Configuration)


Lanjut masih dengan topik yang sama yakni tentang Laravel. Bahasan sekarang mengenai dot ENV (.ENV), yakni suatu berkas yang digunakan Laravel sebagai variabel yang nantinya dipakai untuk konfigurasi database seperti nama database, username dan password database, application key, dan lain sebagainya.

Dot ENV sangat membantu untuk mengambil nilai konfigurasi yang berbeda berdasarkan pada lingkungan aplikasi. Sebagai contoh, Anda mungkin ingin menggunakan driver cache yang berbeda secara lokal dari yang Anda lakukan pada server produksi Anda. Sangat mudah menggunakan konfigurasi Dot ENV ini.

Laravel memanfaatkan DotEnv PHP library buatan Vance Lucas. Jika Anda mengunduh manual Laravel (dari GitHub), maka Anda akan melihat pada direktori root dari aplikasi Anda akan berisi berkas .env.example. Jika Anda menginstal Laravel melalui Composer, berkas ini akan otomatis diubah namanya menjadi .env. Jika tidak, Anda harus mengubah nama berkas tersebut secara manual.

Jika Anda melihat sebuah berkas ini:

laravel-dotfile

Itu berisi semua variable Laravel seperti gambar di bawah ini:

laravel-appkey

Anda dapat mengatur seluruh variable yang nantinya digunakan untuk aplikasi Anda. Seperti pengaturan aplikasi APP_KEY, DB_USERNAME, DB_PASSWORD, dan lain sebaginya.

Semua variabel tersebut terekam dalm satu variabel global bernama $_ENV Anda dapat mengaksesnya dengan artisan tinker contoh:

php artisan tinker
lalu ketik
$_ENV

laravel-dotEnv

Atau juga Anda dapat mengaksesnya dengan function env(). Contoh:

env('APP_URL')

laravel-dotenv-2

Anda dapat mengambil nilai environment dengan cara:

$environment = App::environment();
//atau
$environment = app()->environment();

laravel-artisan-thinker

Gambar di atas hasilnya local karena pada .ENV di APP_ENV bernilai local. Yang mana tujuannya adalah jika Anda membuat dua metode semisal jika environment bernilai local maka memanggil kode lokal, jika tahap production memanggil kode production. Contoh:

if (App::environment('local')) {
    // environment local maka panggil kode lokal
}

if (App::environment('local', 'staging')) {
    // Jika environment local atau staging maka
}

if (App::environment('production')) {
    // environment local maka panggil kode production
}

Cukup mudah bukan? Semoga bermanfaaat. ?