Menggunakan Pola HMVC di dalam Codeigniter

HMVC singkatan dari Hierarchical-Model-View-Controller, yang artinya pola MVC tetapi berupa Hirarki.

Hampir sama dengan MVC, hanya saja di sini MVC tersebut disimpan di dalam banyak modul, jadi setiap modul terdapat Model, View, dan Controller.



Nah, selain framework lain seperti Kohana, Zend, dan lain-lain, kita juga dapat menerapkan pola seperti ini di dalam Framework Codeigniter, caranya yaitu dengan menggunakan Modular Extensions, yang dapat Anda load di sini



Instalasi



1. Download modular extensions CI di sini.

2. Di dalamnya, terdapat 3 buah file, yaitu:

* MY_Router.php

* Modules.php

* Controller.php

3. Simpan ketiga file itu di dalam folder library di CI Anda, yaitu /system/application/libraries/

4. Buatlah folder modules di dalam /system/application, sehingga terdapat folder baru dengan path: /system/application/modules



Setelah diinstall, berikut adalah cara penggunaan modular extensions.



Cara Menggunakan



Controller disimpan di dalam folder modules/nama_controller. Jadi, buatlah folder baru sebagai nama modul di dalam modules, misalnya bukutamu. Kemudian, buatlah folder baru bernama controllers dan simpan di dalam folder /system/application/modules/bukutamu/.



Buatlah nama controller yang akan Anda buat, misalnya bukutamu.php dan simpan di dalam folder controllers yang ada di dalam folder bukutamu.

Kita tidak akan menggunakan folder controllers bawaan dari CI yang ada di folder /system/application/controllers, tetapi kita menggunakan controllers yg ada di dalam masing-masing modul yang ada di dalam folder modules, untuk kasus ini, controller bernama bukutamu.php disimpan di dalam path: /system/application/modules/bukutamu/controllers/



Begitu juga untuk model dan view, bahkan untuk modul yg berbeda, Anda simpan semua file di dalam masing2 folder dengan nama modul Anda, dan disimpan di dalam folder modules…. sehingga setiap modul mempunyai MVC (Model, View, dan Controller)



Contoh



Untuk contoh, kita bisa ambil studi kasus untuk controller User.



Controller: user.php



PHP Code:


<?php

class User extends Controller

{

 

    function 
__construct()

    {

        
parent::Controller();

    }

 

    function 
index()

    {

        
$this->load->view('user/user_view');

    }

 

    
// ...

    //............. Kode program Anda

    // ...

 

}

?>



Controller user.php disimpan di: /system/application/modules/user/controllers/user.php



Model: user_model.php



PHP Code:


<?php

class User_model extends Model

{

 

    function 
__construct()

    {

        
parent::Model();

    }

 

    
// ...

    //............. Kode program Anda

    // ...

 

}

?>



Model user_model.php disimpan di: /system/application/modules/user/models/user_model.php



View: user_view.php



PHP Code:


Ini adalah view untuk user 





View user_view.php harus disimpan di: /system/application/modules/user/views/user_view.php



Catatan:

Untuk penamaan file model dan view, tidak harus user_model.php atau user_view.php, itu sesuai dengan style programming Anda, Anda dapat juga menggunakan nama ini misalnya model: m_user.php dengan view: index.php. Itu tergantung style coding Anda



Berikut ini contoh struktur path dengan menggunakan modules:



/system/application/modules/user/controllers/user.php

/system/application/modules/user/models/user_model.php

/system/application/modules/user/views/user_view.php

/system/application/modules/content/controllers/content.php

/system/application/modules/content/models/content_model.php

/system/application/modules/content/views/content_view.php

/system/application/modules/bukutamu/controllers/bukutamu.php

/system/application/modules/bukutamu/models/bukutamu_model.php

/system/application/modules/bukutamu/views/bukutamu_view.php



dst…..





Catatan:

Untuk Model, Anda direkomendasikan menyimpannya di luar modular, kenapa? karena pengalaman saya, 1 model itu bisa dipake beberapa modul, jadi untuk memudahkan pencarian, model mending disimpan di struktur default CI, yaitu /system/application/models



Jika model berada di luar module, maka strukturnya adalah sperti berikut:







Apa Kelebihan Menggunakan Pola HMVC?



Kelebihan dari HMVC yaitu program menjadi modular, yang artinya programmer dapat mengerjakan masing2 module tanpa mengganggu direktori yang sedang orang lain kerjakan. Kedua, jika misalnya kita ingin menggabungkan hasil kerjaan kita dengan orang lain maka sangat mudah, karena kita tinggal mengkopi modul kita ke direktori modules di komputer master, sehingga dengan cara seperti ini kita tidak kesulitan dalam menangani konflik file yang sedang sama-sama diedit (misalnya mengedit folder controller secara bersamaan). Banyak kasus yang dapat dipermudah dengan menggunakan HMVC…



Salam sukses..
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description

Video Gallery

  • Linux
    sekedar informasi, sekarang zimbra sudah diakuisisi oleh VMWare. jadi nantinya logo webmail zimbra kita akan ada logo VMware-nya.
  • Foto
    kalo mau buat efek foto kembar yang penting pilih minimal 3 foto (mau lebih juga terserah anda aj..)yang setingan tempat dan letak kameranya
  • Network
    setelah anda membongkar dus, dan menyiapkan koneksi. yang perlu anda lakukan adalah:
  • Serba-Serbi
    16 Cara Mengikat Sepatu Ala Jepang share buat teman2 & cew ato cow yang senang menggunakan sepatu bertali. Selamat mencoba
  • Tips-Trik
    Jika agan pengguna komputer, pasti sudah tidak asing lagi dengan yang namanya mouse. Mouse adalah salah satu pendamping setia dari komputer. Hampir semua jenis mouse memiliki 3 buah tombol. Tombol kiri, tombol kanan dan tombol scroll yang ada di tengah
  • Windows
    Windows 7 merupakan versi yang jauh lebih baik daripada versi terbaru windows, yaitu windows Vista. Dan windows 7 dilengkapi dengan banyak fitur baru.