Pada saat kita membuat suatu aplikasi, kadang-kadang kita perlu menyimpan nilai konfigurasi di environment variable, di laravel memiliki fitur untuk memudahkan pekerjaan kita dalam mengambil data dari environment variable. kenapa kita harus menyimpan konfigurasi aplikasi kita di environment variable ? karena kalau kita letakan di hardcode kode kita nantinya kita akan kesulitan merubahnya, biasanya dalam membuat aplikasi ada tahapan-tahapannya misalnya runing dilocal dulu baru ke development lalu ke QA Environments baru ke Production Environments misalnya, jadi nilai-nilai konfigurasi akan berubah-ubah. Contoh konfigurasi environment variable misalnya password database, nama database, user name database, lokasi database dan lain-lainnya.
Dilaravel kita bisa mengambil nilai dari environment variable dengan menggunakan function env(key) atau Env::get(key)
Daftar Isi :
- Membuat Environment variable di unit test
- Menjalankan Environment variable di unit test
- Devault Value di Environment
Membuat Environment variable di unit test
Untuk latihan kita coba membuat unit test untuk mengecek nilai environment variable di laravel, caranya buka terminal lalu buat integration test dengan perintah “php artisan make:test environmenttest” jika sudah berhasil lalu buka filenya di folder test/Feature/environmenttest.php, lalu kita edit kodenya seperti di bawah ini dan simpan
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
class environmenttest extends TestCase
{
/**
* A basic feature test example.
*
* @return void
*/
public function testGetEnv()
{
$envvar = env('environmentvar');
$this->assertEquals('this is first evironment', $envvar);
}
}
Jika berhasil akan tampak seperti gambar dibawah ini

Menjalankan Environment variable di unit test
kalau kita jalankan unit test diatas untuk menguji variable environment yang baru kita buat pasti akan error karena Environment “environmentvar” TIDAK ada seperti gambar dibawah ini

Untuk membuat Environment Variable “environmentvar” kita dapat menggunakan kemampuan laravel untuk membaca nilai dari file .env yang terdapat di project laravel yang telah kita buat.
buka file .env jika tidak ada file .env dalam project anda, anda bisa copy file .env.example menjadi file .env, lalu tambahkan code dibawah ini di bagian paling atas di file .env
environmentvar="this is first evironment"
file .env akan tampak seperti gambar dibawah ini

Jika sekarang kita jalankan unit test yang kita buat tadi (environmenttest.php) yang berada di dalam folder test/Feature/environmenttest.php akan tampak seperti gambar dibawah ini

Dari gambar diatas tampak tulisan OK (1 test, 1 assertion) yang artinya nilai environment variable “environmentvar” yang ada di file .env sama dengan ‘this is first evironment’ yang ada di file unit test environmenttest.php yang berda di folder test/Feature/environmenttest.php karena kita menggunakan kode $this->assertEquals(‘this is first evironment’, $envvar); pada unit test kita.
Default Value di Environment
Laravel mendukung default value untuk Environment variable, Default value adalah nilai yang di gunakan ketika environment variable yang kita ambil tidak tersedia caranya kita bisa menggunakan function env(key, default) atau Env::get(key, default)
contoh default value di environment akan kita buat di unit test, ketikan “php artisan make:test defaultvalue” di terminal untuk membuat integration testnya, lalu buka file defaultvalue.php yang ada difolder test/feature/defaultvalue.php lalu edit dan ketikan kode dibawah ini
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
class defaultvalue extends TestCase
{
/**
* A basic feature test example.
*
* @return void
*/
public function test_default_value()
{
$name = env('first', 'Herbert');
$this->assertEquals('Herbert', $name);
}
}
Lalu kita jalankan unit test kita dengan menekan tombo; ctrl+shift+p lalu ketikan/pilih “Better PHPUnit: run” jika tidak ada error akan tampak seperti gambar dibawah ini

kode “$name = env(‘first’, ‘Herbert’);” diatas adalah contoh environment dengan default value, yang artinya jika tidak ada nilai environment “first” maka nilai environment “first” akan otomatis diisi secara default dengan nilai “Herbert”.
Atau anda bisa menggunakan class env yaitu “Env::get(key, default)“, caranya buka file defaultvalue.php yang ada difolder test/feature/defaultvalue.php lalu edit dan ketikan kode dibawah ini
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\env;
use Tests\TestCase;
class defaultvalue extends TestCase
{
/**
* A basic feature test example.
*
* @return void
*/
public function test_default_value()
{
$name = env('first', 'Herbert');
$this->assertEquals('Herbert', $name);
}
// Class env -> Env::get(key, default)
public function test_default_value2()
{
$name2 = env::get('second', 'terenyi');
$this->assertEquals('terenyi', $name2);
}
}
kode “use Illuminate\Support\env;” merupakan class env yang akan kita import sehingga kita bisa menggunakan kode “Env::get(key, default)“, jika unit test diatas di jalankan maka akan tampak seperti gambar dibawah ini

Demikian Tutorial laravel bagian 5, semoga bermanfaat, sampai ketemu di tutorial laravel bagian 6 ya,,
Anda mungkin ingin melihat tutorial belajar laravel yang lainnya :