Tutorial Belajar PHP Laravel bagian 6

Pada tutorial belajar laravel untuk pemula bagian 5, kita telah belajar tentang variable environment  di laravel dan tutorial belajar laravel kali ini kita akan belajar tentang Application environment dan Configuration di laravel. Pada saat kita membuat sebuah aplikasi di laravel, terkadang kita ingin menentukan saat ini sedang berjalan pada environment mana, misalnya di local, di dev, di staging, di QA atau di Production. Di laravel hal tersebut biasanya di lakukan dengan menggunakan environment variable APP_ENV, untuk mengecek saat ini sedang berjalan di application environment apa, di laravel kita bisa menggunakan function “App::environment(value)” atau jika ingin mengecek lebih dari 1 kita bisa menggunakan array seperti kode ini “App::environment([value1, value2])”, dimana akan return true jika benar, Hal ini berguna saat kita membutuhkan logic dalam pembuatan aplikasi, misalnya saat kita berada di local kita lakukan apa atau saat kita lagi di production kita mau melakukan apa dan seterusnya.

Tutorial Belajar Laravel (Application environment dan Configuration)

Daftar Isi :

  • Membuat unit test untuk application Environment
  • Configuration

Membuat unit test untuk application Environment

Tahapan selanjutnya dalam tutorial belajar laravel ini adalah membuat unit test untuk application environmentnya. Kalau kita perhatikan saat kita menggunkan unit test, di phpunit.xml sebenarnya application environmentnya sudah di hardcode dan di berikan value “testing” (<env name=”APP_ENV” value=”testing”/>) seperti gambar dibawah ini

tutorial belajar laravel
phpunit.xml – photo by webbaliseo

Untuk mengujinya kita akan membuat sebuat integration test dengan perintah : php artisan make:test app_environment_test lalu edit dan paste kode dibawah ini

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Support\Facades\App;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class app_environment_test extends TestCase
{
    /** @test */
    public function test_app_env()
    {
        var_dump(App::environment()); //show the APP_ENV value
    }
}

oya jangan lupa untuk import classnya dengan kode “use Illuminate\Support\Facades\App;” kalau kita jalankan unit test diatas akan tampil seperti gambar dibawah ini

tutorial belajar laravel
Testing of APP_ENV value – photo by webbaliseo

Dari hasil unit test diatas kita berada pada Environment “Testing“, kalau kita lihat di file .env, value APP_ENV adalah “Local” seperti gambar dibawah ini

tutorial belajar laravel
APP_ENV in .env – photo by webbaliseo

Tapi kenapa dari hasil unit test diatas hasil value APP_ENV bisa “testing” padahal di file .env value APP_ENV adalah “local” ??? jawabannya adalah karena nilai APP_ENV di over write oleh phpunit.xml sewaktu runing unit testnya.

Configuration

Environment Variable sangat cocok kita gunakan untuk jenis konfigurasi yang memang membutuhkan nilainya yang berubah-ubah dan terintegrasi dengan baik dengan environment variable di sistem operasi.

Laravel juga mendukung penulisan konfigurasi dengan menggunakan PHP Code yang artinya jika anda membuat environment variable hanya bisa menampung 1 value di PHP Code bisa menampung value dalam Array, konfigurasi ini biasanya di gunakan ketika memang di butuhkan tidak terlalu sering berubah dan biasanya pengaturannya hampir sama untuk lokasi dijalankan aplikasi.
Namun saat menggunakan fitur laravel configuration, kita juga tetap bisa mengakses Environment Variable.

Folder Configuration

Laravel menyimpan semua konfigurasi di folder config yang terdapat di project dan prefix dari konfigurasi di awali dengan file php yang terdapat di project tersebut. seperti gambar dibawah ini

tutorial belajar laravel
config folder laravel – photo by webbaliseo

Membuat File Konfigurasi

Untuk membuat file konfigurasi, kita cukup membuat file php di dalam folder config lalu didalam file tersebut kita cukup retur konfigurasi dalam bentuk array.

Buat file php dengan nama contoh.php di dalam folder config di project anda lalu tulisan code di bawah ini

<?php
return[
     "name" => [
        "first"=>"Gede"
        "last"=>"Suryawan"
     ],
     "email"=>"gedebhama@gmail.com",
     "web"=>"https://webbaliseo.com"
];
?>

Untuk mengambil konfigurasi di file config, kita akan menggunakan sebuah function dari laravel yaitu function config(key, default), yang mana pembuatan key pada config diawali dengan nama file, kemudian
diikuti dengan key yang terdapat di dalam return valuenya dan setiap nested array menggunakan tanda titik (.)
misalnya dalam contoh file konfigurasi contoh.php diatas jika kita ingin mengambil value first maka penulisan kodenya menjadi “contoh.name.first” yang artinya kita mengambil konfigurasi dari file contoh.php, lalu kita ambil data array key “name” kemudian didalamnya kita ambil data key “first”.
Sama seperti function env(), function config() juga memiliki parameter default value jika key konfigurasinya valuenya tidak tersedia, sekarang kita akan coba membuat unit test untuk mengambil value dari konfigurasinya, buka terminal lalu buat unit test dengan kode “php artisan make:test configurationtest” setelah itu buka file configurationtest.php yang ada di folder test/feature/configurationtest.php lalu ketikan kode dibawah ini

<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;

class configurationtest extends TestCase
{
    /** @test */
    public function configtest()
    {
        $firstname  =   config('contoh.name.first'); //get value of key 'first' in file config/contoh.php
        self::assertEquals('Gede', $firstname); //check the value of $firstname (key first)
    }
    
  
}

Jika unit test diatas dijalankan akan tampak seperti gambar dibawah ini

tutorial belajar laravel
Get value from config file – photo by webbaliseo

Demikian tutorial belajar laravel (Application environment dan Configuration) semoga bermanfaat dan sampai ketemu pada tutorial belajar laravel bagian 7

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *