CodeIgniter HMVC
CodeIgniter HMVC, Penjelasan dan Contoh Penerapannya di Codeigniter 3.1.9. Sebelumnya kita bahas terlebih dahulu apa itu CodeIgniter serta definisi HMVC.
Apa itu CodeIgniter
CodeIgniter adalah Framework Pengembangan Aplikasi – sebuah toolkit – untuk orang-orang yang membangun situs web menggunakan PHP. Tujuannya adalah untuk memungkinkan Anda mengembangkan proyek lebih cepat daripada yang Anda bisa jika Anda menulis kode dari awal, dengan menyediakan kumpulan library yang banyak untuk tugas-tugas yang biasa dibutuhkan, serta antarmuka yang sederhana dan struktur logis untuk mengakses library ini.
CodeIgniter memungkinkan Anda secara kreatif fokus pada proyek Anda dengan meminimalkan jumlah kode yang diperlukan untuk tugas yang diberikan.
Apa itu HMVC
HMVC merupakan singkatan Hierarchical Model View Controller. HMVC adalah versi pengembangan dari Design Patern MVC (Model-View-Control). Atau bisa kita bilang sebagai versi MVC yang diimplementasikan secara hirarkis. Hirarkis di sini maksudnya adalah hirarki folder (struktur folder) yang membuat aplikasi Anda modular. Ini memberi Anda kesempatan untuk memisahkan controller, model dan view ke dalam beberapa modul sehingga Anda dapat mempertahankan atau meningkatkan aplikasi dengan mudah.
Kuncinya adalah, satu modul memiliki satu MVC, atau bisa dikatan lebih gampangnya adalah, satu modul memiliki masing-masing file controller, file model, dan file view. Meskipun masing-masing file tersebut tidak selamanya diperlukan, ada kalanya cuma perlu file view dan controller saja.
Persyaratan / Kebutuhan Server
PHP versi 5.6 atau yang lebih baru direkomendasikan. Saya mencoba ini bekerja pada 5.6.3 dengan baik, saya sangat menyarankan Anda untuk tidak menjalankan versi lama PHP, karena potensi masalah keamanan dan kinerja, serta fitur yang tidak jalan.
Penerapan HMVC di CodeIgniter
Silahkan download source code di https://github.com/eksyam/codeigniter-3.1.9-hmvc atau clone melalui terminal di linux atau git bash di windows dengan perintah git berikut.
1 |
git clone git@github.com:eksyam/codeigniter-3.1.9-hmvc.git |
Jika Anda sudah men-download sourcode diatas, silahkan simpan di folder DocumentRoot anda,
/var/www untuk linux atau htdocs untuk windows. Lalu akses di browser anda http://localhost/codeigniter-3.1.9-hmvc/ maka akan tampil seperti berikut.
Gambar diatas merupakan tampilan dari modul welcome yang kita setting Root URL-nya di application/config/routes.php
1 2 3 |
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; |
Adapun letak modul welcome ada di application/modules
1 2 3 4 5 6 7 8 |
|- application |-- modules |--- welcome |---- controllers |----- Welcome.php |---- models |---- views |----- welcome_message.php |
Next, jika kita ingin menambahkan modul maka di application/modules inilah kita melakukannya. Contoh kita ingin menambahkan modul product maka strukturnya akan seperti berikut ini.
1 2 3 4 5 6 7 8 |
|- application |-- modules |--- product |---- controllers |----- Product.php |---- models |---- views |----- product_view.php |
Jika Anda sudah membuat modul product dengan file controllers Product.php dan views product_view.php seperti struktur di atas. Selanjutnya edit file seperti berikut:
File
/application/modules/product/Product.php
1 2 3 4 5 6 7 8 9 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Product extends MX_Controller { public function index() { $this->load->view('product_view'); } } |
File /application/modules/product/views/product_view.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to CodeIgniter</title> <style type="text/css"> ::selection { background-color: #E13300; color: white; } ::-moz-selection { background-color: #E13300; color: white; } body { background-color: #fff; margin: 40px; font: 13px/20px normal Helvetica, Arial, sans-serif; color: #4F5155; } a { color: #003399; background-color: transparent; font-weight: normal; } h1 { color: #444; background-color: transparent; border-bottom: 1px solid #D0D0D0; font-size: 19px; font-weight: normal; margin: 14px ; padding: 14px 15px 10px 15px; } code { font-family: Consolas, Monaco, Courier New, Courier, monospace; font-size: 12px; background-color: #f9f9f9; border: 1px solid #D0D0D0; color: #002166; display: block; margin: 14px 14px ; padding: 12px 10px 12px 10px; } #body { margin: 15px 15px; } p.footer { text-align: right; font-size: 11px; border-top: 1px solid #D0D0D0; line-height: 32px; padding: 10px 10px; margin: 20px ; } #container { margin: 10px; border: 1px solid #D0D0D0; box-shadow: 8px #D0D0D0; } </style> </head> <body> <div id="container"> <h1>Welcome to CodeIgniter 3.1.9 HMVC Modul Product!</h1> <div id="body"> <p>The page you are looking at is being generated dynamically by CodeIgniter.</p> <p>If you would like to edit this page you'll find it located at:</p> <code>application/modules/product/views/product_view.php</code> <p>The corresponding controller for this page is found at:</p> <code>application/modules/product/controllers/Product.php</code> <p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="https://www.codeigniter.com/user_guide/">User Guide</a>.</p> </div> <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p> </div> </body> </html> |
Jika sudah, silahkan akses
http://localhost/codeigniter-3.1.9-hmvc/product di browser, maka akan muncul seperti tampilan berikut ini.
Seperti itulah penerapan HMVC di CodeIgniter. Selanjutnya silahkan buat modul-modul lainnya sesuai dengan kebutuhan system Anda. Jika ada pertanyaan silahkan tinggalkan pesan dikolom komentar.
KOMENTAR TERBARU