CI introduction HMVC

Model – View – Controller (MVC) adalah jenis arsitektur yang memisahkan hasil informasi dari user yang berinteraksi dengan nya. Model konsisten berisi aplikasi data dan bisnis rule, controller menjadi mediasi input, mengubah nya menjadi perintah untk model atau view. view dapat mengeluarkan tampilan data seperti chart atau diagram. kita dapat saja membuat sebuah data memiliki beberapa tampilan (view)

HMVC adalah pengembangan dari model MVC. HMVC memiliki keunggulan dari segi modular nya, apa itu segi modular ?
pada pengalaman penulis, saat kita menggunakan bentuk MVC kita memilki kemudahan untuk pengembangan script database (model), css tampilan + html layout (), dan core program (controller), masing2 controller dapat dikembangkan sendiri, lalu dimana keuntungan modular. sebuah konsep modular memungkinkan kita untuk membuat  sebuah ‘bagian’ yang dapat di pasang pada projek lain. berikut dengan file configurasi nya juga.

contoh pada projek lalu kita membuat sebuah modul gallery image, ternyata pada projek website berikutnya ada juga permintaan untuk membuat gallery image, tentu kita dapat menggunakan core dan model, mungkin menyesuaikan pada bagian views nya..

walau saya belum mebuat sebuah ‘Content Management System’ yang ‘menginstall’ modul ke projek lain, tapi pengalaman saya merasakan adalah hampir tidak perlu membuat sebuah system dari awal, atau dari nol. kita tinggal mengikuti alur program dari modul, dan menyesuaikan nya dengan system.

berikut contoh program module HMVC pada framework codeigniter + script dari wireframe

ellislab.com/codeigniter

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

untuk installasi nya silahkan pelajari dokumentasi masing masing

misal kita akan membuat sebuah modul yang menampilkan random quote dari orang2 terkenal,

berikut adalah buat table quote

CREATE TABLE IF NOT EXISTS `mdl_quote` (
`QOT_ID` int(11) NOT NULL AUTO_INCREMENT,
`QOT_PERSON` varchar(64) NOT NULL,
`QOT_WORD` text NOT NULL,
PRIMARY KEY (`QOT_ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO `mdl_quote` (`QOT_ID`, `QOT_PERSON`, `QOT_WORD`) VALUES
(1, 'bruce lee', 'a man must constantly exceed his level'),
(2, 'pythagoras', 'wahai anak muda, jika engkau tidak sanggup menahan lelahnya belajar, engkau harus menanggung pahitnya kebodohan');

1. buat sebuah folder modules /application/modules
2. buat folder nama module yang ingin kita buat didalam folder modules, misal kita akan membuat modul foo
/application/modules/foo
3. didalam folder quote buat folder controllers, models, views, config

Config
buat file autoload.php
isi kan dengan script

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$autoload['libraries'] = array('database');

Models
buat file quote_m.php
isikan dengan script

<?php
// https://g3n1k.wordpress.com/2009/11/06/mengambil-nilai-random-pada-tabel-database/
class quote_m extends CI_Model {
function quote_m() {
parent::__construct();
}

function get_quote(){
$query = $this-&gt;db-&gt;query("SELECT QOT_ID id, QOT_PERSON person, QOT_WORD quote FROM mdl_quote ORDER BY RAND() LIMIT 1");
return $query-&gt;row();
}
}

Views
buat file quote_v.php
isikan dengan script

<?php
echo "
<p style='padding:.5em ; background:yellow; color:red; font-wight:700; text-transform:uppercase; max-width:50%;'>{$quote->quote}
<span style='clear:both; padding:.05em .5em; margin:0 0 0 .5em; background:black; color:white;text-transform:capitalize;'>{$quote->person}</span>
</p>
";
?>

Controllers
buat file quote.php
isikan dengan script

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class quote extends MX_Controller {
public function __construct() {
parent::__construct();
$this->load->model('quote_m');
}

public function index(){
$this->get_quote();
}

public function get_quote(){
$data['quote'] = $this->quote_m->get_quote();
$this->load->view('quote_v', $data);
}
}

cek dari browser dengan url [server]/[folder ci]/[nama modul]
ex: localhost/myci/quote

modules localhost
modules ci

Published by

G3n1k

just to remember what i had known :)

One thought on “CI introduction HMVC”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s