Berbagi Tips Sederhana Codeigniter

Walaupun popularitas Codeigniter (CI) sudah tidak seperti awal-awal muncul, namun sepertinya penggunanya cukup banyak yang setia untuk tetap menggunakan CI. Buktinya masih sering saya lihat di facebook orang-orang berdiskusi mengenai framework php yang satu ini. Dan sebagai pengguna CI juga saya ingin berbagi beberapa tips yang biasa saya pakai saat menggunakan CI.

Global Base URL

Fungsi base_url di CI adalah untuk menunjukan alamat utama dari situs yang sedang dibuat. Jadi, jika situs yang digunakan adalah arsmp.com isi dari konfigurasi base_url ya arsmp.com.

<?php

$config['base_url'] = 'http://arsmp.com/';

Tapi kalau harus selalu mengubah alamat setiap kali pindah cukup ribet apalagi dalam proses pengembangan. Saya biasa menggunakan script berikut agar alamat base_url yang digunakan dapat otomatis mengatur dirinya sendiri.

<?php

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

Menghilangkan index.php

Saat menggunakan CI biasanya url yang dibentuk akan seperti iniarsmp.com/index.php/controller_name/function/parameter lalu biasanya untuk mempercantik index.php itu dihilangkan agar bisa seperti iniarsmp.com/controller_name/function/parameter. Saya biasa menggunakan script berikut di file .htaccess.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

Dan jika saat upload ke serve mendapatkan error no input file specified cukup ubah sedikit menjadi

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

Perhatikan tanda ? di sana.

Base Controller dan Base Model

Di CI umumnya saat membaut controller maupun model akan di_extend_ ke CI_Model atau CI_Controller, padahal di CI kita dapat mengganti extends tersebut ke controller atau modelyang kita buat sendiri. Untuk membuat extend saya pernah menulisnya di sini.

Fungsinya buat apa ? Fungsinya untuk menghemat waktu. Contohnya begini :

Fungsi CRUD ( Create, Read, Update, Delete ) pasti digunakan di setiap model, yang membedakan mungkin hanya nama tabel dan field yang dipilih. Dengan membuat ‘core’ model yang baru kita dapat menyimpan fungsi global di satu model dan model-model yang lainnya bisa langsung menggunakan fungsi CRUD tersebut. Sekali lagi saya pernah menulisnya yang lebih detail di sini.

Membangun Helper

Saat membangun aplikasi biasanya kita akan menghadapi beberapa fungsi yang mungkin digunakan berulang kali dan jika sudah menemukan hal seperti itu, salah satu solusinya adalah membuat helper.

Misal kita akan membuat sebuah fungsi konversi slug atau alias pada sebuah nama. Jadi jika yang dimunculkan itu sebuah nama seperti ‘Framework Codeigniter’ padahal di database yang dibacanya adalah ‘framework-codeigniter’. Daripada membuat fungsi yang sama berulang-ulang lebih baik fungsi itu dibuat helper.

Cara membuat helper pun cukup mudah. Buat berkas baru di folder application/helpersdengan nama custom_helper.php di dalam berkas tersebut isikan seperti berikut :

<?php

/**
* Description of custom_helper
*
* @author ariesm
*/
  
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
    
  if (!function_exists('slug')) {
    
  //fungsi yang nanti akan diakses di controller maupun di view
   function slug($string) {
     $result = strtolower(str_replace(" ", "-", $string));
     return $result;
    }
                      
}

Setelah selesai load helper tersebut bisa di autoload maupun di controller. Dan cara menggunakan cukup panggil saja si fungsi slug(); seperti :

<?php

echo slug('Framework Codeigniter');

//ouputnya akan seperti ini : framework-codeigniter

Nah itulah 4 cara yang biasa saya gunakan saat menggunakan Codeigniter. Semoga tulisan ini membantu.

Sumber :

  • Diolah dari berbagai pengalaman dan diskusi baik di group facebook, stackoverflow, dan lain sebagainya.