Penerapan MVC di Kohana

Posted by Nurasto | June 19, 2012 | Software and Web Development | 2 Comments

Secara konsep, Model View Controller atau disingkat MVC merupakan suatu pola pengembangan aplikasi yang sudah ada sejak bertahun – tahun yang lalu. Dalam penerapan konsep MVC banyak perbedaan antara satu framework PHP dan yang lain. Dalam artikel kali ini kita membahas / belajar mengenai MVC yang berlaku dan spesifik pada Kohana, apa tanggung jawab masing – masing entitas berserta contoh kode untuk entitas tersebut.

Dalam artikel ini saya akan memberikan gambaran besar dari komponen MVC yang terdapat pada Framework PHP Kohana.

Model

Model merupakan suatu class yang bertugas untuk penerapan metoda prilaku dan mungkin data akses. Model bisa berupa ORM (Object Relationship Model), Kohana sudah memiliki modul yang bisa digunakan untuk menerapkan ORM.

Contoh Model pada Kohana

<?php
	class Model_Product extends Model {

		public function get_products($id)
		{
			return DB::select()->from('product')->where('id', '=', $id)->execute();
		}

		public function get_all()
		{
			//returning query result
			return DB::select()->from('product')->execute();
		}

	}
?>

Kode di atas menggunakan salah satu kelas yang sudah terdapat dalam Kohana yaitu Query Builder, kemudian saya melakukan eksekusi dan mendapatkan baris data yang ditemukan. Apabila tidak ditemukan maka dikembalikan nilai false.

View

View merupakan file – file yang bertugas untuk menampilkan data yang telah diolah menjadi informasi. View tidak terbatas pada tampilan web saja namun bisa juga XML, JSON, JavaScript, atau CSS. Tergantung bagaimana kita ingin menampilkan informasi tersebut.

Contoh View pada Kohana

<html>
<head>
	<title><?php echo $title; ?></title>
</head>
<body>
	<?php foreach($products as $product): ?>
	<tr>
		<td><?php $product->name; ?></td>
		<td><?php $product->price; ?></td>
	</tr>
	<?php endforeach; ?>
</body>
</html>

Pada view yang lain model tetap bisa dimanfaatkan, misalnya kita ingin menampilkannya dalam bentuk XML secara parsial.

<?php foreach($product as $product): ?>
<product>
	<name><?php echo $product->name; ?></name>
	<price><?php echo $product->price; ?></price>
</product>
<?php endforech; ?>

Kita dapat membentuk berbagai macam presentasi sesuai yang kita inginkan.

Controller

Controller tugasnya untuk menjalankan permintaan yang masuk melalui URL kemudian menjalankan metoda yang disesuaikan dengan rute yang telah ditentukan / didefinisikan, kemudian menjadi mediasi antara model dan view. Controller juga bisa menjadi tempat untuk mengelola otentikasi, melakukan penyaringan input yang masuk, dan melakukan fungsi – fungsi yang berhubungan dengan pengolahan data masuk.

Contoh Controller pada Kohana

<?php

class Controller_Product extends Controller {
	public function action_index()
	{
		$products_model = Model::factory('product');
		$products = $product_model->find_all();	

		if(empty($this->request->param('format')))
		{
			$format = 'html';
		}
		else
		{
			$format = $this->request->param('format');
		}		

		View::factory("$view/$format")
			->bind('products', $product);
	}
}

Jika anda pernah menggunakan CI sebelumnya maka kemungkinan besar anda mengatakan sama. Ya, memang hampir mirip dari segi sintaks namun cara kerja dan pola pengembangannya jauh berbeda.

Kita akan membahas semua bagian – bagian ini lebih dalam pada artikel – artikel selanjutnya. Selanjutnya, anda bisa membaca Kohana : Mengenal Controller dan Routing

Comments

  1. pasarjogja.com says:

    Kalo MVC yang di pake di opencart itu MVC apa ya om?

    btw ini hanya framework saja?
    framwork MVC yang paling populer apa ya om?

    salam,

    pasarjogja.com – baca-baca ngelmu dari yang pinter

    • OpenCart bikin sendiri, mbak. Kohana hanya framework aja. MVC yang paling populer itu CodeIgniter (CI), programmer yang pakai framework ini seabrek :).

      Selamat jualan mbak, komentarnya saya approve semua deh.

Sorry, comments are closed

Bit and Bytes

Hello. My name is Dityo Nurasto. I am working as freelance software and web developer.

This is my personal playground. Enjoy your stay and don't hesitate to send comments.

ShoutBox