Tutorial Belajar Laravel Bagi pemula Bagian 5 (Environment)

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

create unit test environment
create unit test environment – photo by webbaliseo

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

environment error
environment error – photo by webbaliseo

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

create environment
create environment variable in .env file

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

create environment
run unit test to check the environment variable value – photo by webbaliseo

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

create  environment default value
create environment default value – photo by webbaliseo

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

env class
using env class in environment – photo by webbaliseo

 

Demikian Tutorial laravel bagian 5, semoga bermanfaat, sampai ketemu di tutorial laravel bagian 6 ya,,

Anda mungkin ingin melihat tutorial belajar laravel yang lainnya :