Penerapan Hmvc pada CodeIgniter

Penerapan HMVC pada CodeIgniter

Penerapan HMVC pada CodeIgniter adalah versi pengembangan dari Design Patern MVC (Model-View-Controller). HMVC sendiri adalah singkatan dari Hierarchical-Model-View-Controller. Atau bisa kita sebut sebagai versi MVC yang diimplementasikan secara hirarkis. Hirarkis di sini maksudnya adalah hirarki folder (struktur folder) yang mana menjadi modul.

HMVC merupakan sebuah pengembangan tingkat lanjut dari MVC yang bersifat modular atau per modul-modul. Jadi kalau di MVC itu query, logika dan tampilan di pisah maka di HMVC ini di pisah sesuai modul-modulnya sendiri, jadi setiap modul itu memiliki MVC (Model View Controller) sendiri pula.

Kuncinya adalah, satu modul memiliki satu MVC, atau bisa dikatakan lebih gampangnya adalah, satu modul memiliki masing-masing file model, file view dan file controller. Meskipun masing-masing file tersebut tidak selamanya diperlukan, ada kalanya cuma perlu file view dan controll saja.

Skema gambar HMVC:

Penerapan HMVC pada CodeIgniter
Penerapan HMVC pada CodeIgniter

Penerapan HMVC pada CodeIgniter keuntungannya adalah sistem akan dipisahkan berdasarkan modul per-modul, hal ini tentu akan memudahkan pengerjaan, perawaatan dan pembagian tugas dalam kerja tim karena controller, model, dan view tidak berada dalam satu direktori yang menyebabkan programmer sedikit binggung apalagi dalam kerja tim.

Untuk HMVC itu sendiri, engine codeigniter tidak menyiapkan untuk konsep HMVC karena itu kita harus buat sendiri dengan memanfaatkan extention modular.

Bagaimana cara Penerapan HMVC pada CodeIgniter, berikut caranya:

Instalasi HMVC

Untuk proses instalasinya, pertama kali kita harus download modular extentionnya.
Download Codeigniter-Modular-Extensions-HMVC Wiredesignz

Setelah kita download maka isi dari filenya adalah seperti ini:

Penerapan HMVC pada CodeIgniter
Penerapan HMVC pada CodeIgniter

Isi dari folder core:

Codeigniter Modular Extensions HMVC Folder Core
Codeigniter Modular Extensions HMVC Folder Core

Isi dari folder thrid_party/MX:

Codeigniter Modular Extensions HMVC Folder third_party
Codeigniter Modular Extensions HMVC Folder third_party

Selanjutnya copy isi dari folder core dan third_party ke dalam project CodeIgniter kita ke dalam folder aplication, sehingga menjadi seperti berikut:

hmvc-codeigniter
Hmvc CodeIgniter

Kemudian buat folder bernama modules di dalam aplication, folder ini yang nanti tempat menyimpan semua modul yang akan kita buat.

Saya membuat sebuah modul dengan nama pegawai yang didalamnya terdapat Model, View dan Controller sendiri. Anda bisa menambahkan dengan dengan nama lain,  begitu selanjutnya jika ditambahkan modul lagi.

Hmvc CodeIgniter
Hmvc CodeIgniter

Jalankan project mengarah ke module pegawai, dengan url : http://localhost/nama_project_anda/index.php/pegawai

Codeigniter Modular Extensions HMVC Success
Codeigniter Modular Extensions HMVC Success

Modular Extensions HMVC telah berhasil terinstal pada project CodeIgniter kita.

Terjadi Error Setelah Instalasi HMVC

Jika terjadi error setelah Modular Extension di CodeIgniter sudah diinstal, muncul pesan error seperti ini:

Codeigniter Modular Extensions HMVC Error
Codeigniter Modular Extensions HMVC Error

Untuk memperbaiki Error di atas maka:
1. Buka application/third_party/MX/Loader.php
2. Cari function public function view($view, $vars = array(), $return = FALSE)
Cari… (Line 300)

return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));

3. Ganti kode tersebut dengan:

if (method_exists($this, '_ci_object_to_array'))
{
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
} else {
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
}

Jalankan kembali project anda, maka seharusnya error tidak muncul lagi dan halaman anda akan tampil.

Web Programmer. Flutter Developer. Content Creator. Founder Ayongoding.com. Penyuka minuman sachet. Menulis pakai tangan kanan. Masih main mobilan remot. Dan pernah kuliah Sistem Informasi sampai lulus.

4 Komentar

Leave a Reply

Your email address will not be published. Required fields are marked *