0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan6 halaman

Membuat MVC Framework Sederhana Dengan PHP

membuat aplikasi sederhana

Diunggah oleh

Rafi AntivirusLab
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan6 halaman

Membuat MVC Framework Sederhana Dengan PHP

membuat aplikasi sederhana

Diunggah oleh

Rafi AntivirusLab
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

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.
2.
3.
4.
5.
6.

Pengunjung mengetik http://www.umsite.com/blog


Framework akan mengarahkan ke controller blog.php
Controller akan memproses dan membentuk informasi
Model akan mengirim ke Controller data yang diperlukan oleh Controller.
Controller akan mengemas informasi ini untuk diberikan ke view.
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

Anda mungkin juga menyukai