Sobatcoding.com - Tutorial cara menggunakan file .env pada Codeigniter 3
Di dalam pembangunan sebuah sistem kita biasanya menyimpan beberapa konfigurasi seperti koneksi database, nama app dan lain-lain langsung di dalam aplikasi. Seperti halnya di dalam Codeigniter 3 kita menyimpan konfigurasi seperti base_url, database dan lainnya tersebar di berbagai file seperti config.php dan database.php. Tentunya hal ini sangatlah tidak praktis mengingat kita harus melakukan pengeditan di berbagai folder atau file php.
Beda halnya dengan Codeigniter 4 dan Laravel yang sudah support dengan file dotenv, dimana untuk setting konfigurasi seperti koneksi database dan nama app sudah disimpan dalam satu file yang bernama .env.
Yup, kenapa tidak. Kali ini kita akan mencoba mengimplementasikan file .env agar bisa kita pakai di Codeigniter 3
Pada kesempatan kali ini beberapa requirment yang admin gunakan adalah:
Adapun langkah-langkah yang akan dilakukan
Pakcage yang kita gunakan adalah vlucas/phpdotenv
Adapun cara install menggunakan composer dengan command line seperti berikut
composer require vlucas/phpdotenv
Tunggu sampai proses instalasi selesai
Setelah proses instalasi selesai, selanjutnya kita lakukan beberapa konfigurasi seperti berikut
Kita aktifkan dulu fitur autoload dari composer agar library bisa terbaca oleh sistem. Buka file application/config/config.php
$config['composer_autoload'] = FALSE;
//ubah menjadi
$config['composer_autoload'] = 'vendor/autoload.php';
Selanjutnya kita aktifkan fitur hooks
$config['enable_hooks'] = TRUE;
Selanjutnya buatlah file .env kosong di root project CodeIgniter 3
Buka file application/config/hooks.php, dan tambahkan kode berikut
$hook['pre_system'] = function() {
$dotenv = Dotenv\Dotenv::createImmutable(FCPATH);
return $dotenv->load();
};
Tujuan kita aktifkan fitur hook, dan menambahkan function di dalam pre_system adalah agar file .env bisa di eksekusi sebelum system di dalam Codeigniter selesai dieksekusi
Karena file .env ada di folder root project codeigniter maka kita menggunakan FCPATH sebagai alamat direktori dimana file .env dibuat.
Selanjutnya kita buat sebuah helper yang berfungsi untuk memanggil variable di dalam file .env.
Sebenarnya variable env bisa kita panggil menggunakan helper bawaan php seperti $_SERVER[{VARIABLE}] atau pun $_ENV[{VARIABLE}], namun terkadang return valuenya null atau kosong, oleh karena itu kita coba buat helper untuk mengakomodir masalah itu.
Buatlah file baru bernama global_helper.php dan simpan di dalam folder application/helpers.
<?php
if (! function_exists('env')) {
/**
* Allows user to retrieve values from the environment
* variables that have been set. Especially useful for
* retrieving values set from the .env file for
* use in config files.
*
* @param string|null $default
*
* @return bool|string|null
*/
function env(string $key, $default = null)
{
$value = $_ENV[$key] ?? $_SERVER[$key] ?? getenv($key);
// Not found? Return the default value
if ($value === false) {
return $default;
}
// Handle any boolean values
switch (strtolower($value)) {
case 'true':
return true;
case 'false':
return false;
case 'empty':
return '';
case 'null':
return null;
}
return $value;
}
}
Buka file autoload.php yang ada di folder application/config, dan tambahkan konfigurasi seperti berikut
$autoload['helper'] = array('global');
Fungsi kode di atas agar helper yang telah kita buat bisa kita panggil di dalam controller
Selanjutnya buka kembali file .env dan tambahkan variable berikut
DB_HOST="localhost"
DB_USERNAME="root"
DB_PASSWORD=""
DB_DATABASE="db_testing"
Variable di atas akan kita gunakan untuk konfigurasi koneksi ke database.
Buka file application/config/dabatase.php dan lakukan beberapa modifikasi
'hostname' => env("DB_HOST"),
'username' => env("DB_USERNAME"),
'password' => env("DB_PASSWORD"),
'database' => env("DB_DATABASE"),
Konfigurasi selesai.
Kalian bisa melakukan testing dengan cara query ke database kalian atau kalau kalian belum ada database kalian bisa test dengan cara buka controller Welcome.php. Didalam metod index() masukkan kode berikut
echo env("DB_HOST");
Demikian artikel kali ini. Selamat mencoba dan semoga artikel ini bermanfaat
Komentar 0