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.
- Jika anda belum memahami konsep MVC bisa baca tutorial ini : Mengenal Konsep MVC di Codeigniter
- Untuk Cara Membuat Controller, Model dan View bisa baca di tutorial ini : Membuat Model, View dan Controller di 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 :
- controllers
- models
- 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
1 2 3 4 5 6 7 8 9 10 11 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Produk extends CI_Controller { public function index() { $this->load->view('vw_produk'); } } |
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
1 2 3 4 5 6 7 8 9 |
<span style="color: #ff0000;"><html></span> <head> <meta charset="UTF-8"> <title>Belajar HMVC di Codeigniter</title> </head> <body> <h1>Ini adalah halaman module Produk</h1> </body> </html> |
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 :
- buka folder application/third_party/MX/Router.php
- 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 :
1 2 3 4 5 6 7 8 9 |
public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if (strpos($class, $suffix) === FALSE) { $class .= $suffix; } parent::set_class($class); } |
Ubah menjadi seperti berikut ini :
1 2 3 4 5 6 7 8 9 |
public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if( $suffix && strpos($class, $suffix) === FALSE) //kode perubahan yang benar { $class .= $suffix; } parent::set_class($class); } |
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 :
- Silahkan buka file application/third_party/MX/Loader.php
- Berikutnya cari function view (kurang lebih di line 290), lalu ubah code didalam function tersebut
Code Sebelumnya :
1 2 3 4 5 6 7 8 9 10 11 12 |
public function view($view, $vars = array(), $return = FALSE) { list($path, $_view) = Modules::find($view, $this->_module, 'views/'); if ($path != FALSE) { $this->_ci_view_paths = array($path => TRUE) + $this->_ci_view_paths; $view = $_view; } return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); } |
Menjadi seperti berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public function view($view, $vars = array(), $return = FALSE) { list($path, $_view) = Modules::find($view, $this->_module, 'views/'); if ($path != FALSE) { $this->_ci_view_paths = array($path => TRUE) + $this->_ci_view_paths; $view = $_view; } 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)); } } |
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.
ANDA INGIN SERIUS BELAJAR FRAMEWORK CODEIGNITER ?
Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP.
Untuk anda yang ingin serius belajar pemrograman PHP, Khususnya menggunakan Framework PHP Codeigniter, Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar menggunakan Framework PHP Codeigniter, dari mulai step – step dasar hingga mampu membuat aplikasi berbasis web dengan menggunakan Framework PHP Codeigniter.
Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar Framework PHP Codeigniter, bahkan untuk orang awam sekalipun.
Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Framework PHP Codeigniter
-
Tutorial Singkat Langsung Jago Framework Codeigniter
Rp98,000 Add to cart -
Tutorial Seminggu Jago Framework Codeigniter Dan Bootstrap
Rp90,000 Add to cart -
Tutorial Membangun Sistem Informasi Akademik Sekolah Dengan Codeigniter Dan Ajax
Rp145,000 Add to cart -
Tutorial Membangun Toko Online Responsive Dengan Codeigniter Dan Bootstrap
Rp135,000 Add to cart -
Tutorial Membangun Sistem Informasi Rumah Sakit Dengan Codeigniter MySQL Dan Ajax
Rp145,000 Add to cart -
Kursus Online – Pemrograman Web dan Android – Membuat Aplikasi Kasir
Rp300,000 Add to cart
Ilmunya sangat membantu tuk saya.
Terima kasih
loader.php saya kok masih ada yang salah ya gan, saya sudah replace yg dari agan
terima kasih
Ada kemungkinan versi phpnya mas
tutorialnya yg integrasi sama admin dashboard donk min