SlideShare a Scribd company logo
1 of 7
Membuat MVC Framework Sederhana dengan PHP
Kali ini kita akan membuat sebuah MVC framework di PHP.
Aplikasi yang dibuat sangat sederhana namun memungkinkan kita untuk memahami cara kerjanya.
MVC pada awalnya banyak digunakan dalam aplikasi GUI dekstop, tetapi saat ini dengan perkembangan
dan kematangan bahasa pemrograman web, bermunculanlah beberapa framework yang menggunakan
arsitektur ini.
Kayaknya sih yang memulai visi web ini adalah David Heinemeier Hansson pembuat Ruby On Rails, yang
pertama kali meluncurkan MVC untuk pertama kalinya ke web.
Sebelum makin OOT mari kita lajutkan bahasan ini
MVC, singkatnya adalah cara yang efisien, bersih dan cepat untuk memisahkan kode program dari kode
HTML, atau antar muka lain yang kita pilih.
MVC berarti, Model – View – Controller.
Model: bertanggungjawab terhadap pengelolaan data seperti SQL databases dan operasi SELECT,
UPDATE, DELETE,dsb, dst, dll
View: menampilkan antarmuka (UI), html, css, javascript dan sebagainya
Controller: Jantung dan otak dari arsitektur MVC, tempat semua request masuk, controller adalah yang
menjembatani antara view dan model.
Berikut skema sederhana bagaimana semua ini bekerja.
1. Pengunjung mengetik http://www.umsite.com/blog
2. Framework akan mengarahkan ke controller blog.php
3. Controller akan memproses dan membentuk informasi
4. Model akan mengirim ke Controller data yang diperlukan oleh Controller.
5. Controller akan mengemas informasi ini untuk diberikan ke view.
6. Dan akhirnya, controller akan memanggil view dan menampilkannya sebagai antarmuka
Tidak semua MVC framework berjalan seperti itu, tetapi ini adalah dasar dari framework yang akan kita
buat dalam pembahasan ini
Ayo kita mulai ..
Tentukan struktur datanya
./my_mvc
./my_mvc/application
./my_mvc/application/controller
./my_mvc/application/model
./my_mvc/application/view
Itu sudah cukup jelas, gak usah diterangin lagi ya.. ^_^V
/.htaccess
Sebelumnya kita harus membuat file .httaccess, file ini akan mengarahkan semua permintaan HTTP ke
file index.php.
RewriteEngine On
RewriteBase /my_mvc/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Note: mod_rewrite harus sudah aktif pada konfigurasi Apache webservernya (ceritanya.. ini pake web
server Apache gitu, kalo beda ya sesuai-in aja ye..… ^_^V).
/index.php
Index.php seperti yang dijelaskan sebelumnya adalah merupakan pintu gerbang aplikasi ini, kapanpun
kita mengakses URL, maka .htaccess akan mengarahkan ke file index.php ini dan file ini akan memuat
API framework kita, dan API akan memanggil controller dan seterusnya.
//Mendefiniskan URL
define("BASE_PATH", "http://localhost");
//Mendefiniskan basepath
$path = "/my_mvc";
//Mendapatkan inisial PATH.
$url = $_SERVER['REQUEST_URI'];
$url = str_replace($path,"",$url);
//membuat array dari URL
$array_tmp_uri = preg_split('[/]', $url, -1, PREG_SPLIT_NO_EMPTY);
//Disini, ditentukan peran masing-masing segmen dalam URL
$array_uri['controller'] = $array_tmp_uri[0]; // adalah class
$array_uri['method'] = $array_tmp_uri[1]; // adalah fungsi
$array_uri['var'] = $array_tmp_uri[2]; //adalah variabel/parameter
//memuat base API
require_once("application/base.php");
//memuat controller
$application = new Application($array_uri);
$application->loadController($array_uri['controller']);
/application/base.php
Class berikut ini adalah class yang utama dan sangat penting, mengingat dari class inilah controller yang
akan kita buat , demikian pun model dan view-nya akan di 'load'
class Application
{
var $uri;
var $model;
function __construct($uri)
{
$this->uri = $uri;
}
function loadController($class)
{
$file = "application/controller/".$this->uri['controller'].".php";
if(!file_exists($file)) die();
require_once($file);
$controller = new $class();
if(method_exists($controller, $this->uri['method']))
{
$controller->{$this->uri['method']}($this->uri['var']);
} else {
$controller->index();
}
}
function loadView($view,$vars="")
{
if(is_array($vars) && count($vars) > 0)
extract($vars, EXTR_PREFIX_SAME, "wddx");
require_once('view/'.$view.'.php');
}
function loadModel($model)
{
require_once('model/'.$model.'.php');
$this->$model = new $model;
}
}
Percaya gak, kita barusan saja membuat 'ultra-slim-light MVC framework'. Nggak susah 'kan?
Nah sekarang, coba kita mulai memakai framework yang barusan kita bikin itu dengan membuat
controller, model dan 2 buah view untuk sebuah blog.
/application/controller/blog.php
Ini adalah nama dari controller-nya, jadi setiap kita mengakses http://localhost/my_mvc/blog/ maka
class Application akan memfilter URL dari index.php, dan akan memuat file blog.php.
class Blog extends Application
{
function __construct()
{
$this->loadModel('model_blog');
}
function index()
{
$articles = $this->model_blog->select();
$data['articles'] = $articles;
$this->loadView('view_blog',$data);
}
function add($title="")
{
$data['title'] = $title;
$this->loadView('view_blog_add',$data);
}
}
Jika diperhatikan, dalam constructor class-nya kita bisa menentukan 'model' yang akan digunakan,
dalam kasus ini kita memilih 'model_blog', dan model ini akan dimuat dari file
./application/model/model_blog.php (akan dijelaskan entar ya…)
Secara default, class ini akan menjalankan semua kode dalam fungsi index(), tetapi jika kita mengakses
http://localhost/my_mvc/blog/add, maka class Blog ini akan menjalankan fungsi add(). Sederhana
kan?
Di dalam setiap fungsi dari Class yang kita buat dapat memanggil fungsi-fungsi dari model juga, atau
mendefinisikan variabel yang akan digunakan di dalam 'view'.
Kalo dilihat lebih dekat fungsi index() terlihat bahwa:
- memanggil fungsi select() dari model model_blog.php
- membuat sebuah array yang berisi data variable
- memuatnya ke dalam sebuah view dari variable array tersebut
/application/model/model_blog.php
class model_blog extends Application
{
function __construct()
{
//lakukan sesuatu dimari, koneksi DB, dst,dsb,dll..
}
function select()
{
return array("title 1","title 2","title3");
}
}
Class ini bertanggungjawab untuk pengelolaan Database, pada contoh model yang dibuat ini kita buat
fungsi sederhana select() yang mensimulasikan array dari hasil query ke database dengan beberapa
baris data.
/application/view/view_blog.php
<html>
<head>
<title>My Blog</title>
</head>
<body>
<h1>My Blog</h1>
<?foreach($articles as $article):?>
<h3><?=$article?></h3>
<?endforeach?>
</body>
</html>
/application/view/view_blog_add.php
<html>
<head>
<title>My Blog</title>
</head>
<body>
<h1>My Blog</h1>
<h3>Title:</h3>
<input type="text" value="<?=$title?>">
</body>
</html>
Dan terakhir, kita mempunyai 2 view seperti yang dibicarakan sebelumnya. Hasilnya akan menampilkan
'hasil' akhir, dalam HTML tentunya..
----------------------------
Iseng2 by : cahya dsn
Created date : 2013-01-07
Iseng2 by : cahya dsn
Created date : 2013-01-07

More Related Content

What's hot

Pertemuan 3-pemecahan-masalah-ai
Pertemuan 3-pemecahan-masalah-aiPertemuan 3-pemecahan-masalah-ai
Pertemuan 3-pemecahan-masalah-aiwillyhayon
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlineandiseprianto
 
2. Sistem Basis Data
2. Sistem Basis Data2. Sistem Basis Data
2. Sistem Basis DataFendi Hidayat
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianEndang Retnoningsih
 
[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)rizki adam kurniawan
 
Pertemuan 8 google map
Pertemuan 8 google mapPertemuan 8 google map
Pertemuan 8 google mapheriakj
 
Soal essay basis data xi
Soal essay basis data xiSoal essay basis data xi
Soal essay basis data xitia irma
 
Xampp Untuk Pemula
Xampp Untuk PemulaXampp Untuk Pemula
Xampp Untuk PemulaNdixs Tok
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAndiNurkholis1
 
Privasi dan Keamanan Internet
Privasi dan Keamanan InternetPrivasi dan Keamanan Internet
Privasi dan Keamanan InternetICT Watch
 
Cara Membuat Website Menggunakan CMS Wordpress & XAMPP
Cara Membuat Website Menggunakan CMS Wordpress & XAMPPCara Membuat Website Menggunakan CMS Wordpress & XAMPP
Cara Membuat Website Menggunakan CMS Wordpress & XAMPPMuhammad Iqbal
 
MAKALAH CLOUD COMPUTING
MAKALAH CLOUD COMPUTINGMAKALAH CLOUD COMPUTING
MAKALAH CLOUD COMPUTINGHanny Maharani
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaFarichah Riha
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekimam arifin
 

What's hot (20)

Pertemuan 3-pemecahan-masalah-ai
Pertemuan 3-pemecahan-masalah-aiPertemuan 3-pemecahan-masalah-ai
Pertemuan 3-pemecahan-masalah-ai
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
2. Sistem Basis Data
2. Sistem Basis Data2. Sistem Basis Data
2. Sistem Basis Data
 
Sistem terdistribusi
Sistem terdistribusiSistem terdistribusi
Sistem terdistribusi
 
Modul Ajar Basis Data
Modul Ajar Basis DataModul Ajar Basis Data
Modul Ajar Basis Data
 
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan PencarianPertemuan 4-5-6 Metode Pelacakan dan Pencarian
Pertemuan 4-5-6 Metode Pelacakan dan Pencarian
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)
 
Pertemuan 8 google map
Pertemuan 8 google mapPertemuan 8 google map
Pertemuan 8 google map
 
Soal essay basis data xi
Soal essay basis data xiSoal essay basis data xi
Soal essay basis data xi
 
Xampp Untuk Pemula
Xampp Untuk PemulaXampp Untuk Pemula
Xampp Untuk Pemula
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
Sister 012 - name service
Sister   012 - name serviceSister   012 - name service
Sister 012 - name service
 
Soal uts pemrograman web
Soal uts pemrograman webSoal uts pemrograman web
Soal uts pemrograman web
 
Privasi dan Keamanan Internet
Privasi dan Keamanan InternetPrivasi dan Keamanan Internet
Privasi dan Keamanan Internet
 
Cara Membuat Website Menggunakan CMS Wordpress & XAMPP
Cara Membuat Website Menggunakan CMS Wordpress & XAMPPCara Membuat Website Menggunakan CMS Wordpress & XAMPP
Cara Membuat Website Menggunakan CMS Wordpress & XAMPP
 
MAKALAH CLOUD COMPUTING
MAKALAH CLOUD COMPUTINGMAKALAH CLOUD COMPUTING
MAKALAH CLOUD COMPUTING
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-java
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 

Similar to Membuat mvc framework sederhana dengan php

Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrudmales Aja
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Haswi Haswi
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1Zaenal Arifin
 
Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Welly Rosadi, Mochamad
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Sugeng Nirwoto
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Sugeng Nirwoto
 
Tutorial ci
Tutorial ciTutorial ci
Tutorial ciWira Hul
 
Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Al-dhimas Purnama
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)riarel
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rplDenny Yahya
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterGeorge Kartutu
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterMuhammad Rais
 
Php dgn framework code ignitier
Php dgn framework code ignitierPhp dgn framework code ignitier
Php dgn framework code ignitierAlbertz Ace-Red
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitierHaswi Haswi
 
Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3iimpunya3
 

Similar to Membuat mvc framework sederhana dengan php (20)

Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrud
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1
 
Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Resume aplinet
Resume aplinetResume aplinet
Resume aplinet
 
Tutorial ci
Tutorial ciTutorial ci
Tutorial ci
 
MVC J2EE using servlet
MVC J2EE using servletMVC J2EE using servlet
MVC J2EE using servlet
 
Mari belajar vue js
Mari belajar vue jsMari belajar vue js
Mari belajar vue js
 
Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
 
Tutorial ci
Tutorial ciTutorial ci
Tutorial ci
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rpl
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniter
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniter
 
Php dgn framework code ignitier
Php dgn framework code ignitierPhp dgn framework code ignitier
Php dgn framework code ignitier
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitier
 
Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3
 

Membuat mvc framework sederhana dengan php

  • 1. Membuat MVC Framework Sederhana dengan PHP Kali ini kita akan membuat sebuah MVC framework di PHP. Aplikasi yang dibuat sangat sederhana namun memungkinkan kita untuk memahami cara kerjanya. MVC pada awalnya banyak digunakan dalam aplikasi GUI dekstop, tetapi saat ini dengan perkembangan dan kematangan bahasa pemrograman web, bermunculanlah beberapa framework yang menggunakan arsitektur ini. Kayaknya sih yang memulai visi web ini adalah David Heinemeier Hansson pembuat Ruby On Rails, yang pertama kali meluncurkan MVC untuk pertama kalinya ke web. Sebelum makin OOT mari kita lajutkan bahasan ini MVC, singkatnya adalah cara yang efisien, bersih dan cepat untuk memisahkan kode program dari kode HTML, atau antar muka lain yang kita pilih. MVC berarti, Model – View – Controller. Model: bertanggungjawab terhadap pengelolaan data seperti SQL databases dan operasi SELECT, UPDATE, DELETE,dsb, dst, dll View: menampilkan antarmuka (UI), html, css, javascript dan sebagainya Controller: Jantung dan otak dari arsitektur MVC, tempat semua request masuk, controller adalah yang menjembatani antara view dan model. Berikut skema sederhana bagaimana semua ini bekerja.
  • 2. 1. Pengunjung mengetik http://www.umsite.com/blog 2. Framework akan mengarahkan ke controller blog.php 3. Controller akan memproses dan membentuk informasi 4. Model akan mengirim ke Controller data yang diperlukan oleh Controller. 5. Controller akan mengemas informasi ini untuk diberikan ke view. 6. Dan akhirnya, controller akan memanggil view dan menampilkannya sebagai antarmuka Tidak semua MVC framework berjalan seperti itu, tetapi ini adalah dasar dari framework yang akan kita buat dalam pembahasan ini Ayo kita mulai .. Tentukan struktur datanya ./my_mvc ./my_mvc/application ./my_mvc/application/controller ./my_mvc/application/model ./my_mvc/application/view Itu sudah cukup jelas, gak usah diterangin lagi ya.. ^_^V /.htaccess Sebelumnya kita harus membuat file .httaccess, file ini akan mengarahkan semua permintaan HTTP ke file index.php. RewriteEngine On RewriteBase /my_mvc/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] Note: mod_rewrite harus sudah aktif pada konfigurasi Apache webservernya (ceritanya.. ini pake web server Apache gitu, kalo beda ya sesuai-in aja ye..… ^_^V). /index.php Index.php seperti yang dijelaskan sebelumnya adalah merupakan pintu gerbang aplikasi ini, kapanpun kita mengakses URL, maka .htaccess akan mengarahkan ke file index.php ini dan file ini akan memuat API framework kita, dan API akan memanggil controller dan seterusnya.
  • 3. //Mendefiniskan URL define("BASE_PATH", "http://localhost"); //Mendefiniskan basepath $path = "/my_mvc"; //Mendapatkan inisial PATH. $url = $_SERVER['REQUEST_URI']; $url = str_replace($path,"",$url); //membuat array dari URL $array_tmp_uri = preg_split('[/]', $url, -1, PREG_SPLIT_NO_EMPTY); //Disini, ditentukan peran masing-masing segmen dalam URL $array_uri['controller'] = $array_tmp_uri[0]; // adalah class $array_uri['method'] = $array_tmp_uri[1]; // adalah fungsi $array_uri['var'] = $array_tmp_uri[2]; //adalah variabel/parameter //memuat base API require_once("application/base.php"); //memuat controller $application = new Application($array_uri); $application->loadController($array_uri['controller']); /application/base.php Class berikut ini adalah class yang utama dan sangat penting, mengingat dari class inilah controller yang akan kita buat , demikian pun model dan view-nya akan di 'load' class Application { var $uri; var $model; function __construct($uri) { $this->uri = $uri; } function loadController($class) { $file = "application/controller/".$this->uri['controller'].".php"; if(!file_exists($file)) die(); require_once($file); $controller = new $class(); if(method_exists($controller, $this->uri['method'])) { $controller->{$this->uri['method']}($this->uri['var']); } else { $controller->index(); } } function loadView($view,$vars="") { if(is_array($vars) &amp;&amp; count($vars) > 0) extract($vars, EXTR_PREFIX_SAME, "wddx"); require_once('view/'.$view.'.php'); } function loadModel($model) { require_once('model/'.$model.'.php'); $this->$model = new $model;
  • 4. } } Percaya gak, kita barusan saja membuat 'ultra-slim-light MVC framework'. Nggak susah 'kan? Nah sekarang, coba kita mulai memakai framework yang barusan kita bikin itu dengan membuat controller, model dan 2 buah view untuk sebuah blog. /application/controller/blog.php Ini adalah nama dari controller-nya, jadi setiap kita mengakses http://localhost/my_mvc/blog/ maka class Application akan memfilter URL dari index.php, dan akan memuat file blog.php. class Blog extends Application { function __construct() { $this->loadModel('model_blog'); } function index() { $articles = $this->model_blog->select(); $data['articles'] = $articles; $this->loadView('view_blog',$data); } function add($title="") { $data['title'] = $title; $this->loadView('view_blog_add',$data); } } Jika diperhatikan, dalam constructor class-nya kita bisa menentukan 'model' yang akan digunakan, dalam kasus ini kita memilih 'model_blog', dan model ini akan dimuat dari file ./application/model/model_blog.php (akan dijelaskan entar ya…) Secara default, class ini akan menjalankan semua kode dalam fungsi index(), tetapi jika kita mengakses http://localhost/my_mvc/blog/add, maka class Blog ini akan menjalankan fungsi add(). Sederhana kan? Di dalam setiap fungsi dari Class yang kita buat dapat memanggil fungsi-fungsi dari model juga, atau mendefinisikan variabel yang akan digunakan di dalam 'view'. Kalo dilihat lebih dekat fungsi index() terlihat bahwa: - memanggil fungsi select() dari model model_blog.php - membuat sebuah array yang berisi data variable
  • 5. - memuatnya ke dalam sebuah view dari variable array tersebut /application/model/model_blog.php class model_blog extends Application { function __construct() { //lakukan sesuatu dimari, koneksi DB, dst,dsb,dll.. } function select() { return array("title 1","title 2","title3"); } } Class ini bertanggungjawab untuk pengelolaan Database, pada contoh model yang dibuat ini kita buat fungsi sederhana select() yang mensimulasikan array dari hasil query ke database dengan beberapa baris data. /application/view/view_blog.php <html> <head> <title>My Blog</title> </head> <body> <h1>My Blog</h1> <?foreach($articles as $article):?> <h3><?=$article?></h3> <?endforeach?> </body> </html> /application/view/view_blog_add.php <html> <head> <title>My Blog</title> </head> <body> <h1>My Blog</h1> <h3>Title:</h3> <input type="text" value="<?=$title?>"> </body> </html> Dan terakhir, kita mempunyai 2 view seperti yang dibicarakan sebelumnya. Hasilnya akan menampilkan 'hasil' akhir, dalam HTML tentunya.. ----------------------------
  • 6. Iseng2 by : cahya dsn Created date : 2013-01-07
  • 7. Iseng2 by : cahya dsn Created date : 2013-01-07