Tutorial Codeigniter Part 19 – Cara Menerapkan Konsep HMVC pada Framework Codeigniter

Selamat datang di warungbelajar, dalam tutorial ini kita masih melanjutkan pembahasan tutorial framework codeigniter, pada part 19 ini kita akan membahas cara menerapkan konsep HMVC (Hierarchical Model-View-Controller)

Konsep HMVC ini akan memudahkan anda dalam melakukan management file model view dan controller, dengan membaginya menjadi folder – folder berdasarkan module dari aplikasi yang sedang anda buat.

HMVC sangat membantu ketika aplikasi yang anda buat memiliki banyak modules, sehingga anda dapat mengelompokkan masing – masing module itu menjadi beberapa folder yang namanya disesuaikan dengan modules, sehingga proses management filenya seperti model, view, dan controller dapat lebih mudah, karena terbagi menjadi folder berdasarkan modules

 

Saya akan bahas terlebih dahulu perbedaan penggunaan HMVC dan MVC biasa.

Jika anda menggunakan MVC biasa, maka anda diharuskan untuk meletakkan file Model, View, dan Controller di folder yang telah disediakan oleh Codeigniter.

Saya asumsikan anda telah memahami, konsep mvc, dan peran model, view, dan controller

secara default posisi dari tempat menyimpan file model, view dan controller adalah :

  • Model : application/models
  • Controller : application/controllers
  • Views : application/views

Nah Kalau HMVC posisi tempat menyimpan Model, View, dan Controller akan terbagi menjadi beberapa folder, disesuaikan dengan nama module, nah biar tidak bingung kita langsung praktekkan aja ya, langkah – langkah untuk membuat HMVC di Codeigniter adalah sebagai berikut.

 

Install Extention Modular

Saya asumsikan teman – teman sudah menginstall framework Codeigniter, untuk tutorial instalasi codeigniter bisa dilihat di : Cara Menginstall Framework Codeigniter

dalam contoh ini kita memiliki project codeigniter dengan nama folder adalah hmvc.

Untuk contoh ini versi codeigniter yang saya gunakan adalah Codeigniter 3.1.11, dan versi PHP 7.3.9

 

Untuk langkah awal kita harus menginstall extention Modular, agar dapat menggunakan konsep HMVC, anda bisa mendownload di https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/downloads/

Setelah download extention modular, silahkan extract file tersebut,

didalam folder extention modular itu ada folder core, dan third_party, silahkan pindahkan 2 folder tersebut ke dalam folder project codeigniter anda pada folder application.

silahkan replace seluruh file untuk folder core dan third_party di folder application di project codeigniter anda.

 

Buat Folder Modules di Folder Application

Berikutnya didalam folder application, buat folder dengan nama modules.

Lalu didalam folder modules, kita akan buat folder baru dengan nama produk

didalam folder produk, kita buat 3 folder didalamnya yaitu :

  1. controllers
  2. models
  3. views

Keterangan :

Produk ini adalah nama modules, dan didalamnya terdapat folder controller, model, dan view, sehingga untuk membuat controller, model, dan view untuk keperluan modules produk, anda harus menyimpan file tersebut didalam folder produk ini.

Hal ini berlaku di module lain, contohnya anda akan buat modules kategori ya silahkan buat folder kategori didalam folder modules dan didalam folder kategori, buat folder controller, models, dan views, jadi masing masing modules, memiliki folder controller, models, dan views di masing masing folder nama modules

Oke kita kembali ke ke modules produk, silahkan buat file controller dengan nama Produk.php didalam folder application/modules/produk/controllers

Keterangan :

Perintah controller yang kita tulis ini sama dengan perintah menulis controller biasanya.

pada line 8 kita mengakses file view dengan nama vw_produk, nah yang berbeda dari konsep hmvc disini, posisi file vw_produk.php adalah didalam folder application/modules/produk/views, sehingga bisa kita simpulkan kalau kita buat controller didalam folder application/modules/produk/controllers, ya maka viewnya ada di folder application/modules/produk/views

jadi posisi file controller, model, dan view akan berada di masing masing folder pada bagian folder modules masing – masing

 

Berikutnya buat file view dengan nama vw_produk.php didalam folder application/modules/produk/views

 

Berikutnya kita coba untuk mengaksesnya dengan alamat : localhost/hmvc/index.php/produk

hasilnya akan menampilkan error seperti gambar diatas, hal ini dikarenakan konsep HMVC di Codeigniter 3, dan kita menggunakan versi php 7, jadi kita perlu melakukan beberapa perbaikan code pada core dari codeigniter 3.

 

Perbaiki Error Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior

Cara Memperbaikinya adalah sebagai berikut :

  1. buka folder application/third_party/MX/Router.php
  2. Berikutnya cari code function set_class, anda bisa menggunakan fasilitas pencarian di text editor yang anda gunakan, dengan menekan tombol CTRL + F, jika sudah ketemu, silahkan ubah codenya seperti dibawah ini

code sebelumnya :

Ubah menjadi seperti berikut ini :

Lalu silahkan simpan perubahannya.

 

 

Perbaiki Call to undefined method MY_Loader::_ci_object_to_array()

Berikutnya kita akan perbaiki error Call to undefined method MY_Loader::_ci_object_to_array(), langkah – langkahnya adalah sebagai berikut :

  1. Silahkan buka file application/third_party/MX/Loader.php
  2. Berikutnya cari function view (kurang lebih di line 290), lalu ubah code didalam function tersebut

Code Sebelumnya :

Menjadi seperti berikut ini :

Silahkan simpan perubahannya.

 

Berikutnya kita akan coba lagi mengakses alamat : localhost/hmvc/index.php/produk

Keterangan :

yang tampil adalah tulisan “Ini adalah halaman module Produk” yang merupakan isi dari bagian view vw_produk.

 

Jadi kurang lebih seperti itu konsep HMVC yang bisa kita terapkan di Codeigniter 3, dan kita juga membahas bagaimana cara mengatasi error saat menggunakan php versi 7, baik sekian dulu tutorial kali ini, jika ada yang ingin didiskusikan silahkan di kolom komentar, sampai jumpa di tutorial berikutnya.

One thought on “Tutorial Codeigniter Part 19 – Cara Menerapkan Konsep HMVC pada Framework Codeigniter

  • May 12, 2020 at 11:20 pm
    Permalink

    Ilmunya sangat membantu tuk saya.
    Terima kasih

    Reply

Leave a Reply

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