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 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:
Isi dari folder core
:
Isi dari folder thrid_party/MX
:
Selanjutnya copy isi dari folder core dan third_party ke dalam project CodeIgniter kita ke dalam folder aplication, sehingga menjadi seperti berikut:
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.
Jalankan project mengarah ke module pegawai, dengan url : http://localhost/nama_project_anda/index.php/pegawai
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:
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.
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src/codeigniter-3.x/ kok nggak ada ya kak?
silahkan cek lagi yaa, link sudah kami update
bang, untuk penerapan HMVC di laravel ada ga penjelasannya bang?
terimakasih bang pertanyaan nya.
untuk modular di laravel kita menyebutnya dengan Laravel Modules
Penjelasan lebih lanjut dan cara menggunkannya silahkan klik di artikel berikut bang: Cara Menggunakan Laravel Modules