CodeIgniter 3 merupakan salah satu framework PHP yang bisa dibilang sudah lama. Namun demikian, framework ini masih menjadi salah satu pilihan bagi yang memulai belajar pengembangan web. Saat tulisan ini dibuat, saya pun masih menggunakan framework ini untuk meng-handle projek-projek saya dengan resiko kekurangan dari fitur framework yang dimiliki.

Bagi kalian yang pernah menggunakan ataupun mencoba framework CodeIgniter 3, kalian pasti tahu bahwa semua konfigurasi berada pada direktori application/config/. Pada awal perjalanan karir saya, saya mendapatkan kesulitan saat mengerjakan kodingan secara tim dalam hal memanajemen konfigurasi. Hal ini juga berpengaruh pada saat membuat konfigurasi untuk server development, staging dan production.

Jadi anggaplah untuk konfigurasi database, tiap orang dalam satu tim bisa berbeda-beda konfigurasinya. A menggunakan user A, B menggunakan user B, C menggunakan user C, dst. Seharusnya memang, kodingan konfigurasi TIDAK BOLEH dicommit ke dalam repo. Jadi cara terbaik untuk memanajemen konfigurasi ini dengan menggunakan satu file konfigurasi, yang mana konfigurasi ini sudah mencangkup keseluruhan konfigurasi yang ada pada framework itu sendiri.

Untuk menempatkan semua konfigurasi CodeIgniter 3 dalam satu file, silakan kalian ikuti langkah-langkah berikut:

  1. Buatlah sebuah file dengan nama config.php di root CI3, sehingga akan menjadi seperti berikut:
    .
    ├── application
    ├── composer.json
    ├── config.php
    ├── index.php
    ├── license.txt
    ├── readme.rst
    └── system
    
  2. Masukkan kode berikut dan sesuaikan dengan konfigurasi yang kalian gunakan.
    <?php
    const BASE_URL    = 'http://localhost:8080/';
    
    const DB_HOSTNAME = 'localhost';
    const DB_DATABASE = '';
    const DB_USERNAME = '';
    const DB_PASSWORD = '';
    
  3. Buka file index.php yang ada di root project, kemudian tambahkan kode berikut pada baris paling atas (baris nomor 2).
    require 'config.php';
    
  4. Sesuaikan konfigurasi BASE URL aplikasi di application/config/config.php.
    //sebelum
    26. $config['base_url'] = '';
    
    //sesudah
    26. $config['base_url'] = BASE_URL;
    
  5. Konfigurasikan juga koneksi database di application/config/database.php, ubah kode berikut:
    $db['default'] = array(
      'dsn' => '',
      'hostname' => 'localhost',
      'username' => '',
      'password' => '',
      'database' => '',
    
    menjadi
    $db['default'] = array(
      'dsn' => '',
      'hostname' => DB_HOSTNAME,
      'username' => DB_USERNAME,
      'password' => DB_PASSWORD,
      'database' => DB_DATABASE,
    

Sampai tahap ini seharusnya semua sudah selesai. Jadi intinya, kita hanya perlu membuat file php yang mana pada file tersebut merupakan konstanta untuk digunakan pada file konfigurasi yang ada pada direktori config CodeIgniter 3. Cara ini menurut saya simpel dan tidak memakan banyak storage sehingga cocok bagi kalian yang memiliki kapasitas storage yang terbatas. Jangan lupa untuk menambahkan config.php ke dalam .gitignore.

Perlu diketahui, tutorial ini dibuat berdasarkan versi CI 3.1.13 dengan kondisi original. Cara lain untuk menempatkan konfigurasi dalam satu tempat di CI 3 yaitu dengan phpdotenv. Namun cara ini membutuhkan composer untuk instalasinya dan perlu memodifikasi bawaan framework CI untuk meningkatkan keamanan dari konfigurasi phpdotenv CodeIgniter 3.