Salah satu fitur dari framework Codeigniter adalah kemudahan dalam mengatur Application Environment atau lingkungan kerja aplikasi. Secara default konfigurasi Application Environment di Codeigniter di definisikan di file application/config.php untuk konfigurasi aplikasi dan file application/database.php untuk konfigurasi database. Pemanggilan application environment dilakukan di file index.php. Secara default application environment yang digunakan adalah development. Dengan environment development semua error yg terjadi pada aplikasi akan ditampilkan secara keseluruhan. Sehingga sangat membantu developer dalam proses pengembangan aplikasi. Berikut konfigurasi application environment default di Codeigniter 3.0.


define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

switch (ENVIRONMENT)
{
	case 'development':
		error_reporting(-1);
		ini_set('display_errors', 1);
	break;

	case 'testing':
	case 'production':
		ini_set('display_errors', 0);
		if (version_compare(PHP_VERSION, '5.3', '>='))
		{
			error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
		}
		else
		{
			error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
		}
	break;

	default:
		header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
		echo 'The application environment is not set correctly.';
		exit(1); // EXIT_ERROR
}

Kita dapat mengubah application environment menjadi production ketika aplikasi telah siap untuk di deploy ke server production. Dalam siklus pengembangan aplikasi tentu ada banyak tahapan pengembangan seperti development, testing, dan production. Dimana dalam sebuah tahapan tersebut membutuhkan application environment yang berbeda. Jika pengembangan aplikasi dilakukan sendiri tentu tidak masalah jika kita mengganti application environment aplikasi secara manual. Namun jika kita bekerja di dalam sebuah tim. Mengubah environment aplikasi secara manual dirasa cukup merepotkan dan menghabiskan waktu. Terlebih lagi jika kita bekerja di dalam sebuah tim menggunakan VCS (Version Control System) seperti Git yang setiap anggota tim terlibat dalam pengembangan aplikasi.

Membuat Dynamic Application Environment di Codeigniter 3.0

Application Environment

Dalam tutorial kali ini kita akan Membuat Dynamic Application Environment di Codeigniter 3.0. Dimana environment aplikasi akan berubah secara dinamis sesuai lingkungan pengembangan (server) yang digunakan. Pertama kita definisikan lingkungan pengembangan aplikasi yang akan kita gunakan. Disini kita menggunakan tiga buah application environment :

  1. Development
  2. Testing
  3. Production

Konfigurasi Environment

Untuk masing-masing application environment tersebut akan menggunakan file konfigurasi yang berbeda. Untuk itu kita perlu mendefinisikan file konfigurasi untuk ketiga environment tersebut. Buat tiga buah folder konfigurasi di dalam folder application/config.

  • development
  • testing
  • production

Membuat Dynamic Application Environment di Codeigniter 3.0

Salin file config.php dan database.php yang ada di dalam folder config masing-masing ke dalam tiga buah folder tersebut. Sehingga masing-masing folder konfigurasi memiliki file config.php dan database.php sendiri. Sekarang kita dapat mendefinisikan konfigurasi aplikasi sesuai yang kita butuhkan di ketiga environment tersebut. Misalnya di environment development dan production kita menggunakan koneksi database yang berbeda. Begitu juga dengan konfigurasi yang lainya. Kita dapat mendefinisikan konfigurasi yang berbeda sesuai yang kita butuhkan di masing-masing environment.

Dynamic Environment

Setelah kita mendefinisikan konfigurasi environment yang kita butuhkan. Kita perlu melakukan pengaturan bagaimana konfigurasi environment dapat di load secara dinamis sesuai lingkungan pengembangan yang akan digunakan. Untuk itu kita perlu menambahkan pengaturan di file index.php.



// PENGECEKAN DYNAMIC ENVIRONMENT SESUAI HOST SERVER

switch ($_SERVER['HTTP_HOST']) {
	case 'localhost':
		$env = 'development';
		break;
	case 'www.testing.com':
		$env = 'testing';
		break;
	case 'www.production.com':
		$env = 'production';
		break;
	default:
		$env = 'development';
		break;
}
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : $env);

switch (ENVIRONMENT)
{
	case 'development':
		error_reporting(-1);
		ini_set('display_errors', 1);
	break;

	case 'testing':
		error_reporting(-1);
		ini_set('display_errors', 1);
	break;
	
	case 'production':
		ini_set('display_errors', 0);
		if (version_compare(PHP_VERSION, '5.3', '>='))
		{
			error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
		}
		else
		{
			error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
		}
	break;

	default:
		header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
		echo 'The application environment is not set correctly.';
		exit(1); // EXIT_ERROR
}

Pada kode di atas kita mendefinisikan dynamic application environment berdasarkan alamat host server yang digunakan oleh aplikasi. Dimana jika server yang digunakan adalah localhost maka secara otomatis akan menggunakan environment development, host www.testing.com akan menggunakan environment testing, dan host www.production.com akan menggunakan environment production. Dan secara default aplikasi akan menggunakan environment development. Semoga tutorial sederhana Membuat Dynamic Application Environment di Codeigniter 3.0 dapat mempermudah kita dalam proses pengembangan aplikasi PHP berbasis framework Codeigniter. Untuk hasil dari file konfigurasi dapat anda unduh di sini. Selamat mencoba!

Author Image

Fery Dedi Supardi

I grew up in Magetan, East Java. I have my university degree majoring Informatics Engineering from Brawijaya University, Malang. In 2013, I designed a. . .


Published

Pengaturan CSRF Protection Codeigniter 3.0

CSRF (Cross-site Request Forgery) adalah salah satu jenis serangan keamanan web untuk mendapatkan atau mengirim request yang dieksekusi atas wewenang korban, tanpa dikehendakinya. Serangan. . .


Published