Skip to content

Tutorial Kohana 3 – Mengenal HMVC

4 September 2009

Sudah sekitar 2 minggu ini saya mencoba mempelajari/beradaptasi dengan kohana terbaru yaitu KO3 alias Kohana Versi 3. Disebut beradaptasi karena memang saya berusaha menyesuaikan  perubahan di KO3 compared to versi 2.3. Walaupun adaptasinya tidak intens, namun sedikit banyak saya mencoba share lewat tulisan ini.

Posting kali ini akan membahas mengenai design pattern HMVC yang digunakan di KO3.

Kita sudah tahu bahwa KO2 menggunakan pola arsitektur MVC. Sementara KO3, pola yang digunakan adalah HMVC, yaitu Hierarchical-Model-View-Controller. Pola ini sebenarnya hampir sama dengan MVC, namun pada HMVC, setiap MVC bisa berkomunikasi dengan MVC lainnya sehingga membentuk sebuah hierarchi. Komunikasi diantara MVC ini dilakukan oleh controller.

Pada KO2, setelah meload controller utama, maka proses selesai dengan mendisplay hasil prosesnya. Di KO3, setelah meload controller utama, maka kita bisa membuat request dan meload controller lainnya yang masing-masing mempunyai Model dan View-nya sendiri. Hampir sama seperti ketika melakukan request dari client ke server (MVC), namun Hierarchi ini semuanya diproses di sisi server.

Strukture HMVC

Struktur HMVC

Dari penjelasan tersebut, dapat ditarik kesimpulan bahwa dalam MVC 1 request hanya memiliki 1 controller saja, sementara dengan HMVC ini maka bisa dikatakan 1 request bisa memiliki beberapa controller. Namun begitu tidak masalah jika di KO3 hanya menggunakan 1 MVC saja. Fungsi HMVC ini akan membuat aplikasi terasa lebih modular saja.

Oleh karena yang berperan adalah controller, maka KO3 menggunakan class Request sebagai wrapper untuk melakukan proses Request ke controller lain. Untuk membuat request ini, gunakan fungsi static factory.

Sebagai contoh, page welcome ingin menampilkan news, kotak register user dan archive artikel. Disini controller welcome akan melakukan request ke 3 controller.

$news      = Request::factory(‘widget/loadnews’)->execute();
$register = Request::factory(‘user/register’)->execute();
$archive  = Request::factory(‘archive’)->execute();

Ada 2 hal yang harus diperhatikan ketika melakukan request :
1. Untuk parameter uri, formatnya harus sama dengan format routing di bootstrap. Defaultnya (<controller>(/<action>(/<id>))). Jika tidak menuliskan action atau id, maka kohana akan mengeksekusi default action. Seperti contoh di atas, yang akan dijalankan dari controller archive adalah action_index().
2. Jangan lupa, gunakan methode execute() untuk mengeksekusi action controller, supaya bisa menerima return outputnya.

Setelah proses request selesai, maka selanjutnya adalah menampilkan outputnya yang akan dikembalikan ke pemanggilnya. Output ini disebut dengan response. Caranya yaitu dengan mengassign output ke variabel response yang terdapat pada object request controller.

$this->request->response = $news.$register.$archive;

Dengan cara seperti itu, untuk standardisasi sebaiknya hindari menggunakan echo(), dan gunakan methode response() setiap kali ingin mengembalikan output di setiap controller. Baik itu akan dikembalikan ke browser ataupun ke controller lain yang memanggilnya.

Seperti itulah kira-kira konsep HMVC yang diimplementasikan di kohana 3 sejauh yang saya pahami. Jika ada tambahan atau koreksi silahkan ditunggu commentnya.

6 Comments leave one →
  1. 14 November 2009 8:52 am

    nice share….. boleh ga copas gan??

  2. cevarief permalink*
    15 November 2009 7:37 pm

    Silahkan, jangan lupa sourcenya disebutin😀

  3. 2 March 2010 12:04 pm

    mantap gan.. di contohin praktisnya gan.. maklum newbie🙂

  4. cevarief permalink*
    3 March 2010 9:04 pm

    Maaf mas, udah lama gak pake gambas. Sekarang udah focus di web development aja hehehe. Desktop app nya belum menjamah lagi.

  5. Dea Aditya permalink
    23 November 2011 11:28 am

    Kak klo perbedan make Ko sama Code Igniter apa aja ya? enakan pake yg mana?

  6. cevarief permalink*
    29 November 2011 11:55 am

    Tergantung selera ya kalau soal enakan mana. Masing-masing pasti punya plus minusnya. Saya sendiri sekarang sudah tidak pakai kohana. Kalau CI masih pakai karena ada limpahan kerjaan (nerusin koding orang lain). Pada akhirnya sekarang malah bikin framework sendiri😄.
    Kalau baru pakai framework untuk belajar sih sebaiknya pakai CI aja, dokumentasinya lebih lengkap dibanding kohana. Yang pakainya juga tampaknya (CMIIW) lebih banyak CI dibanding Kohana. Sila buka-buka forumnya.

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

%d bloggers like this: