Konfigurasi Aplikasi menggunakan Variable Environment

Buat: 06/16/2015 - 09:02
Konfigurasi Aplikasi menggunakan Variable Environment PHP Indonesia

(Author: Vinsensius Angelo)

Tingkat Kesulitan

  • Pemula ☑
  • Menengah ☑
  • Ahli ☑

Persyaratan

  • PHP versi >= 5.3.2
  • Composer (http://getcomposer.org);
  • Libary dotenv dari Vance Lucas

Pendahuluan

Banyak dari para programmer PHP sejak dari tahun 2000'an membuat berbagai konsep bagaimana menyimpan konfigurasi pada Aplikasi yang mereka bangun. Dimulai dengan cara menginisialisasi variable GLOBAL berupa Array asosiatif yang dapat di-akses dari seluruh life-cycle saat aplikasi dieksekusi.

Namun dalam beberapa kasus deployment environment (target hosting server implementasi aplikasi), seringkali kita diperhadapkan dengan perbedaan konfigurasi baik dari konfigurasi database, konfigurasi sistem cache, konfigurasi CDN, dll.

Beberapa framework PHP pada beberapa tahun terakhir pun mencoba menciptakan bagaimana konfigurasi menjadi lebih fleksible sesuai dengan deployment environment yang mereka gunakan. Namun coba baca sejenak alasan di bawah ini.

Mengapa .env?

(sumber: artikel)

Anda tidak boleh menyimpan kredensial sensitif dalam kode Anda. Menyimpan konfigurasi dalam environment adalah salah satu prinsip dari dua belas faktor aplikasi. Apa pun yang kemungkinan akan berubah antara target environment - seperti kredensial database atau mandat untuk layanan pihak ke-3 - harus diekstrak dari kode ke variabel lingkungan.

Pada dasarnya, sebuah file .env adalah cara mudah untuk memuat variabel konfigurasi kustom yang membutuhkan aplikasi Anda tanpa harus memodifikasi file htaccess atau Apache / nginx maya host. Ini berarti Anda tidak perlu mengedit file di luar proyek, dan semua variabel lingkungan selalu ditetapkan tidak peduli bagaimana Anda menjalankan proyek Anda - Apache, Nginx, CLI, dan bahkan PHP 5.4 built-in webserver. Ini cara mudah daripada semua cara lain yang Anda tahu untuk mengatur variabel lingkungan, dan Anda akan menyukainya.

  • TIDAK perlu mengubah konfigurasi virtual host di Apache atau Nginx
  • TIDAK perlu menambahkan flag php_value pada Htaccess file
  • Portabilitas MUDAH dan berbagi nilai-nilai ENV diperlukan
  • SESUAI dengan built-in web server PHP dan CLI runner

Implementasi

Langkah-1: Install Composer

Pada langkah awal, silahkan terlebih dahulu persiapkan Composer (PHP Dependency Manager). Pelajari cara instalasi via [artikel ini](http://phpindonesia.net/artikel/mengenal-composer-video. Untuk lebih memudahkan penggunakan Composer, pastikan Composer dapat diakses secara GLOBAL via Command Line/Terminal.

Langkah-2: Siapkan Lokasi dan File Project

Pada langkah kedua, siapkan terlebih dahulu project Anda dan masuk ke directory tersebut via command line/terminal dan jalankan kode di bawah ini:

composer require vlucas/phpdotenv

Gambar saat composer selesai instalasi library/package:

Hasil instalasi

Langkah-3: Buat file ".env"

Buat file ".env" pada root project Anda dan tambahkan konfigurasi aplikasi Anda pada file tersebut. Perhatikan contoh di bawah ini:

DB_HOST=localhost
DB_DATABASE=myadatabase
DB_USERNAME=root
DB_PASSWORD=secret

Langkah-4: Buat file "index.php"

Buat file index.php pada project Anda dengan konten seperti dibawah ini:

<?php
// Load composer vendor autoloader
require "./vendor/autoload.php";

// Load Package dotenv
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();

// Print Test 
echo 'DB Host: '.getenv('DB_HOST').'<br>';
echo 'DB Name: '.getenv('DB_DATABASE').'<br>';
echo 'DB Username: '.getenv('DB_USERNAME').'<br>';
echo 'DB Password: '.getenv('DB_PASSWORD').'<br>';
?>

Langkah-5: Jalankan script "index.php" pada Browser Anda

Test hasil langkah-langkah di atas pada browser komputer Anda.

Gambar Hasil eksekusi pada browser:

Tampilan Directory

Kesimpulan

Dari tutorial di atas maka dapat diambil kesimpulan:

  • Penghematan kode program dengan bantuan library/package "vlucas/phpdotenv"
  • Proses Deplyoment menjadi lebih cepat tanpa mencampuradukkan kode PHP dengan konfigurasi environment yang dinamik.

Gambar tampilan Directory Project:

Tampilan Directory

Lain-lain

Source Code

Silakan download source code di sini

Tampilan Directory

About Author

Tentang PHP Indonesia

PHP Indonesia adalah sebuah komunitas untuk semua orang yang mencintai PHP. Fokus utama kami adalah pemrograman menggunakan bahasa PHP, namun tidak menutup kemungkinan pembahasan yang mencakup keseluruhan LAMP stack. Topik bisa dari pemrograman PHP, penanganan memcached, optimasi database, konfigurasi server, tuning server web, application deployment, framework PHP, hosting pilihan dan sebagainya.

Petunjuk Penulisan

Berikut ini adalah beberapa petunjuk penulisan artikel. Petunjuk dibuat bukan untuk membatasi tetapi demi menjaga kualitas artikel yang terpublikasi di situs ini. Selain itu, keseragaman gaya bahasa dapat menjaga readibilitas (tingkat keterbacaan) sehingga pembaca akan lebih nyaman dalam membaca artikel di situs ini.