Source Code Artikel PC Media – PHP MVC

Ketika paradigma MVC membuat coding semakin mengasyikkan

Tulisan saya yang berjudul “Membuat Sendiri Framework PHP MVC” sudah terbit di PC Media edisi 01/2011, yang beredar awal bulan Desember. Salah satu pembaca ninggal komen di halaman Goals karena saya belum upload source code-nya. Pertama-tama, mohon maaf atas keterlambatannya, salah satunya karena ada sedikit bug di source code yang saya tulis. Rencananya memang awal Desember kemarin saya upload sesuai jadwal terbit PC Media. Tapi setelah saya pikir-pikir lagi, kok gak asyik ya cuma upload kosongan. Jadi selain karena ada bug tadi, saya putuskan untuk upload beserta contoh kodenya.

Ceritanya gini. Beberapa waktu yang lalu saya harus mengerjakan sebuah tugas mata kuliah pemrograman internet di kampus. Nah, karena nggak boleh pakai PHP framework yang sudah ada, saya bikin sendiri. Sekalian saya buat tutorialnya biar bisa dibaca di PC Media. Jauh-jauh hari saya sudah bikin framework itu. Tapi program untuk implementasinya baru jadi beberapa waktu lalu itu, dan dengan durasi kerja bersih gak sampai 3 hari. Mumpung sudah jadi, di post ini sekalian saya cantumkan seluruh kode program project itu.

Program ini cuma contoh kecil dari aplikasi persewaan buku berbasis web. Nggak ada laporan, nggak ada export pdf, nggak ada macem-macem. Nggak semua data juga saya masukkan ke database, ada beberapa yang dalam file. Tampilannya juga ala kadarnya, karena saya memang bukan master CSS. Tapi kalau untuk sekedar memahami konsep MVC, program ini sudah cukup bagus. Semua komponen Model-View-Controller sudah terakomodir di program ini. Saya tambahkan sedikit trik javascript dan jQuery untuk ajax dan interaksi user interface-nya.

Oh iya, salah satu bug yang cukup fatal di kode program yang ada di artikel adalah di file application/core/router.php, khusus untuk method ini:

public function do_request() {
  $this->_controller->{$this->_method}(implode(',', $this->_var));
}

Dengan method tersebut, mau berapapun isi parameter yang di-parse, cuma akan kebaca sebagai satu string panjang dengan pemisah koma. Sedikit kesalahan newbie yang gak saya tes sebelumnya. Jadi, baris itu harus diganti jadi seperti ini:

public function do_request() {
  call_user_func_array(array(&$this->_controller, $this->_method), $this->_var);
}

Dengan fungsi call_user_func_array, kita bisa memanggil sebuah method pada class tertentu, dengan parameter sebanyak apapun dalam bentuk array. Nantinya secara otomatis akan dijadikan parameter dari method yang dipanggil, sesuai dengan nama variable yang dideklarasikan di method. Biar lebih jelas, silahkan coba deh.

Sedikit trik, saya menggunakan Firephp untuk debug. Jadi tinggal nulis gini di controller:

$this->firephp->log("yang mau di-log");

Untuk detail penggunaan Firephp, silahkan cari tahu di website resminya. Yang pasti harus pakai browser Firefox. Atau untuk tutorialnya, bisa baca tulisan saya di PC Mild edisi 22 kemarin.

Nah, program bisa didownload di bawah ini. Maaf saya pakai jasa hosting file gratisan, karena biar host blog saya ini gak kena traffic download file. Hehe.

Download Source Code

Instalasi, cukup extract satu folder itu ke folder htdocs tempat localhost komputer. Jangan lupa bikin database kosong beserta usernya. Terus isikan setting di file application/config/database.php. Import batch yang ada di folder resource ke database. Udah, langsung jalan deh. Untuk masuk ke program, pakai username “admin” dan password “admin“. Dalam program memang ditulis itu dikerjakan oleh 3 orang, karena merupakan tugas kelompok. Tapi sebagian besar yang membuatnya adalah saya sendiri. Jadi silahkan bertanya ke saya kalau ada masalah.

Kalau mau nge-reset project ini supaya jadi framework kosongan, hapus saja semua file dalam folder application/controllers, application/models, dan application/views, serta sebuah file application/libraries/Variables.php.

Lebih detailnya cara menggunakan framework ini, baca aja artikel saya di PC Media 01/2011. Mumpung masih bulan Desember dan stoknya di toko-toko buku masih ada. Hehe. Selamat ber-MVC ria.

14 Comments

  1. Sblmnya trmksh…..sdh menyediakan download sourcecodenya.Tp setelah database dan tabel dibuat dan program dijalankan, ada error sbb:

    Fatal error: Call to undefined function: spl_autoload_register() in D:\xampppp\xampp\htdocs\mvcpustaka\application\core\controller.php on line 31

    Mohon jawabannya di sini (di blog ini)…Trmksh.

    Reply
    • Wah, terima kasih sudah baca dan mencoba artikel saya.

      Hm, boleh tahu pakai PHP versi berapa? Pakai WAMP atau XAMPP? versi berapa?
      Kebetulan fungsi spl_autoload_register() ini baru tersedia di PHP 5.1.2 ke atas, seperti yang tertera di manual http://php.net/manual/en/function.spl-autoload-register.php

      Mungkin juga ada library yang belum di-load. Saya bikin program tersebut pakai XAMPP versi 1.7.3 sebagai local web server. Jika menggunakan WAMP, beberapa library memang tidak diload.

      Reply
  2. Saya juga dah nyoba nih tapi masih muncul pesan :

    404 – Page not found!

    Databasenya sdh di setting. Apa msh ada lg yg hrs di setting?
    Mohon pentunjuk, terima kasih.

    Reply
      • servernya XAMPP 1.7.3 dan ga pake htaccess.

        klo boleh, minta petunjuk lengkap install n pakenya dong mas. maklum, saya masih newbie nih mngenai framework gt

        Reply
  3. Mas boleh minta tolong ga? aku kan ada tugas bikin program pake PHP alhamdulillah sudah beres tapi disuruh dibuat dengan mvc. bisa dibantu ga mas?

    Reply

Leave a Comment.