Cara menggunakan .env di Codeigniter 3


Secara default Codeigniter tidak memiliki kemampuan untuk menggunakan .env di dalam project nya. Namun didalam project Codeigniter 3 ada banyak sekali file configurasi seperti database.php, constants.php dan config.php, dan lainnya. Cara ini kurang bagus dikarenakan environment tersebar dimana-mana. Hal ini tidak baik untuk proses deploy di berbagai environment seperti dev, staging, dan production.

Maka dari itu .env menjadi solusi untuk masalah ini. namun untuk menggunakan .env di Codeigniter kita harus menggunakan library external bernama phpdotenv yang dibuat oleh vlucas.

Proses Installasi

Untuk mengintegrasikan .env ke dalam proyek CodeIgniter 3, kita akan menggunakan library vlucas/phpdoten. Tapi sebelum import library, pertama donwload Codeigniter 3 di link berikut https://codeigniter.com/userguide3/installation/downloads.html. Setelah download Codeigniter, Ekstract ke folder htdocs di xampp.

Lalu buka project ini dengan Code Editor favorit anda dalam contoh ini saya menggunakan Visual Studio Code.

Pastikan pula composer serta PHP sudah terinstall di komputer anda, bisa di cek dengan ketik composer -V dan php -v di terminal.

Buka Terminal di VScode, dengan ctrl + ~ dan ketik composer require vlucas/phpdotenv .

Tunggu hingga proses install selesai.

Selanjutnya buat file .env di root project directory lalu masukan code berikut seperti gambar disamping atau code dibawah.

DB_HOSTNAME=localhost
DB_USERNAME=root
DB_PASSWORD=
DB_DATABASE=mahasiswa

Setelah ini pergi ke index.php di root directory project dan lakukan edit dengan mengduplicate code berikut ke file ini.

require "vendor/autoload.php";
$dotenv = \Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();

Setelah dari ini kita sudah bisa menggunakan variable dari file .env. sebagai contoh saya akan menggunakan semua variable tadi di database.php. Pergi ke application/config/database.php dan edit bagian configurasi database di file ini sesuai dengan code berikut.

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => $_ENV['DB_HOSTNAME'],
	'username' => $_ENV['DB_USERNAME'],
	'password' => $_ENV['DB_PASSWORD'],
	'database' => $_ENV['DB_DATABASE'],
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

Setelah ini buat database sebagai contoh penggunaan .env di project Codeigniter 3. disini saya menggunakan MySQL, caranya nyalakan XAMPP dan buat database bernama mahasiswa dan buat table bernama biodata dengan 4 schema data baru, yaitu id (PK), nama (VARCHAR 128), nim (INT 128), jurusan (VARCHAR 128) sesuai dengan gambar dibawah.

Lalu lakukan query SQL berikut untuk menambah data dummy:

INSERT INTO `biodata` (`nama`, `nim`, `jurusan`)
VALUES
  ('Budi', '123456789', 'Teknik Informatika'),
  ('Ani', '987654321', 'Sistem Informasi'),
  ('Caca', '000000000', 'Manajemen Informatika');

Selanjut kita akan buat Models & Controller sederhana untuk mengetes penggunaan .env.

Pada gambar disamping kita akan membuat Models bernama MahasiswaModel.php.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class MahasiswaModel extends CI_Model {

    public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }

    public function getAllBiodata()
    {
        $query = $this->db->get('biodata');
        return $query->result();
    }

}

Selanjutnya kita akan membuat simple Controllers di application/controllers/Welcome.php

Lalu copykan kode berikut kedalam controller ini.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

	public function __construct()
    {
        parent::__construct();
        $this->load->model('MahasiswaModel');
    }

    public function index()
    {
        $data['biodata'] = $this->MahasiswaModel->getAllBiodata();
        var_dump('data', $data);
    }

}

Terakhir anda bisa membuka http://localhost/<nama_dir_ci3> anda di browser. dan jika muncul sepertik gambar dibawah maka penggunaan variable di .env sudah berhasil karena ini membuktikan proses query ke database sudah berhasil dengan variable .env

Terimakasih sudah mau membaca artikel ini, Sampai jumpa lagi di artikel lainnya 👋.

Ditulis oleh Backend Developer Intern at Digital Amoeba MSIB Batch 6
Raie Aswajjillah – Universitas Islam Nusantara (linkedin.com/in/raie-aswajjillah)