Codeigniter 3 Mod by Yovi Prasetyo

Codeigniter 3

Codeigniter 3 atau kita singkat saja CI3 adalah framework PHP yang masih sangat diminati di Indonesia. Bahkan, beberapa perusahaan besar pun juga memakai CI3. Biasanya dipakai hanya untuk front-end karena salah satu keunggulannya adalah waktu loading yang relatif lebih cepat dibandingkan framework lain.

Modifikasi

Ide untuk membuat modifikasi CI3 ini karena ada beberapa hal yang saya rasa sudah tidak cocok apabila diterapkan di saat ini. Ada beberapa sentuhan perbedaan cukup menguntungkan baik dalam segi keamanan maupun pengembangan. Saya bukanlah master / ahli tapi saya berusaha untuk mengatasi masalah yang saya hadapi.

Masalah

Masalah yang sering saya temui di Codeigniter 3 adalah:

  1. File konfigurasi seperti application/config/config.php dan application/config/database.php tidak dimasukkan ke dalam .gitignore sehingga akan selalu menyebabkan perubahan-perubahan apabila dikerjakan bersama-sama.
  2. Sering saya temui tidak digunakannya Migration pada Codeigniter, saya berharap di modifikasi ini orang-orang lebih aware tentang Migration. Sehingga tidak ada folder yang isinya file .sql.
  3. Tidak tersedia relationship.
  4. Tidak adanya tools seperti Laravel Artisan Console.
  5. Kita akan selalu khawatir file-file kita diakses orang sehingga perlu menambahkan <?php defined(‘BASEPATH’) or die(); di setiap file.

Solusi

Setelah saya modifikasi, saya mendapatkan solusi dari semua masalah di atas adalah seperti ini:

  1. Menambahkan config.php dan database.php ke dalam .gitignore.
  2. Menambahkan relationship belongsTo dan hasMany seperti pada Laravel. Karena sekarang ini apa sih yang gak ber-relasi?
  3. Secara default, terdapat method create, update, delete, getById, getBy, getAll pada Instance Model.
  4. Setiap Model akan return dirinya sendiri, sehingga fungsi-fungsi pada poin 3 bisa dipanggil lagi.
  5. Memindah file index.php ke direktori public/ sehingga tidak perlu lagi menambahkan kode ini <?php defined(‘BASEPATH’) or die(); pada setiap file karena file-file itu tidak bisa diakses dari luar.
  6. Menambahkan tools seperti Laravel Artisan Console.
  7. Mengupdate readme.md karena untuk memperjelas apa saja yang telah diubah dan cara menggunakannya.

Hasil Modifikasi

Hasil CI3 yang telah saya modifikasi bisa diakses di github.com/yoviprasetyo/codeigniter3-mod.

Untuk saat ini memang belum saya taruh di Packagist jadi untuk bisa memakainya harus diclone dulu dari github. Perbedaan, cara instalasi, dan cara penggunaan tools sudah tersedia di readme.md. Cara memakai tools seperti artisan detailnya dijelaskan di post berikut ini.

Kontribusi

Seperti biasa, apabila ingin kontribusi bisa langsung clone kemudian buat saja pull request (karena kita pakai github namanya pull request). Atau bisa membuat issue ketika mendapati sesuatu tidak berjalan sebagaimana mestinya.