OOP dalam PHP : MVC

Huaah.. kebetulan lagi ada tugas progin pake PHP.. nah kebetulan juga ngerti dikit – dikit masalah OOP dalam PHP.. sekedar sharing aja sih..

Dalam OOP kan juga dikenal tuh prinsip MVC (Model – Viewer – Controller) nah mau ngasih sedikit gambaran aja sih gimana cara make MVC dalam OOP.. hehehe

Sedikit ringkasan tentang MVC, Model akan berfungsi untuk memberikan data – data yang diperlukan, biasanya sih berhubungan dengan database. Viewer berfungsi sebagai pengatur tampilannya, dan Controller adalah penghubung antara model dan viewer.

pertama – tama kita coba buat viewer-nya :

<?php
   class view_index{
      function index($data){
         echo $data['title'];
         echo $data['tulisan'];
      }
   }
?>

nah di sana terlihat kita membuat class view_index yang didalamnya ada fungsi indexdan memiliki parameter $data dimana $data itu sendiri adalah kumpulan dari variabel – variabel lainnya. Setelah itu kita simpan dengan nama viewer_index.php

lalu lanjut ke modelnya :

<?php
   class model_index{
      function getJudul(){
         return "DFD";
      }

      function getTulisan(){
         return "DFD Forum DPP";
      }
   }
?>

karena kita tahu bahwa di viewer membutuhkan data title dan tulisan maka model akan mengakomodasi kebutuhan si viewer tersebut. dengan dua fungsi yaitu getJudul dan getTulisan. Biasanya sih nggak secupu itu langsung di-return. biasanya pake akses – akses ke database. tapi males nerangin disini cara ngakses ke databasenya. Hehehe. Setelah itu kita simpan dengan nama model_index.php

nah ini di bagian paling menariknya yaitu membuat controllernya :

<?php
   include("viewer_index.php");
   include("model_index.php");

   class controller_index{
      function index(){
         $data['titlle'] = model_index::getJudul();
         $data['tulisan'] = model_index::getTulisan();
         view_index::index($data);
      }
   }
?>

di awal – awal kita include dulu viewer dan model yang sudah kita buat lalu dengan fungsi itu kita siapkan data – data yang akan dimasukkan ke viewer. Data – data itu kita dapat dari model caranya dengan memanggil fungsi yang ada di model. Setelah data sudah siap barulah kita masukkan ke dalam viewer.

nah model, view, dan controller sudah jadi. Jadi, apa yang akan kita lakukan selanjutnya?? Dalam PHP dia akan langsung memanggil index.php karena itu bagaimana cara mengakses controller kita?

<?php
   include("controller_index.php");

   controller_index::index();
?>

nah hanya tinggal begitu saja. Seperti layaknya main program dalam OOP yang memang tidak terlalu banyak baris di dalamnya. Simpanlah dengan nama index.php

Selamat mencoba.. ^_^

6 responses to this post.

  1. Posted by mozax on June 21, 2010 at 2:08 pm

    nice articel,, keep posting,,

    Reply

  2. Posted by kotak47 on October 23, 2010 at 6:34 pm

    klo untuk datanya pke database gmana mas..??? butuh bntuan bnget nih mas..
    terima kasih seblumx….

    Reply

  3. Kalau menurut saya, sebaiknya penamaan variable untuk model dan viewernya disamakan, atau menggunakan array dalam memilah, sehingga dari index ke controller dapat dibuat kompak dan efisien.

    Dan hanya menggunakan maksimal 2x include pada model dan viewer bersangkutan, tidak seluruh function diread. Walaupun nama class dideklarasikan pada seluruh file di direktori model.

    Saya sudah coba dan selama ini saya anggap cara ini efisien dan dapat dilakukan bongkar pasang seperti (install / uninstall) pada modul tertentu.

    Reply

    • Posted by Aqsath on December 5, 2010 at 11:44 am

      Terima kasih mas Sofian atas sarannya.
      Disini saya hanya mencoba untuk memberi gambaran bagaimana untuk melakukan OOP dalam MVC, nantinya pattern ini juga dapat dimodifikasi sesuai kebutuhan developer yang akan membangunnya atau user yang akan menggunakannya. :)

      Reply

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 )

Connecting to %s

Follow

Get every new post delivered to your Inbox.