Kohana : Mengenal Controller dan Routing

Posted by Nurasto | June 20, 2012 | Software and Web Development | 1 Comments

Controller pada kohana diterapkan sebagai suatu kelas. Dalam pemograman berorientasi obyek kita mengenal tiga konsep utama yaitu enkapulasi, pewarisan, dan polymorpishm (perubahan bentuk). Kelas Controller memiliki fitur tersebut dan dilarang untuk mengubah apapun dalam direktori system.

Kohana telah menyediakan kelas super untuk diturunkan pada modul ataupun aplikasi, yaitu:

  • Controller
    Kelas Controller bertugas menerapkan metoda – metoda yang nantinya akan dieksekusi dan digunakan oleh kelas route, request, request_client. Controller berhubungan erat dengan kelas request dan response.
  • Controller_Template
    Kelas Controller_Template merupakan kelas sub dari Controller. Kelas ini merupakan dasar kelas untuk anda yang ingin menggunakan sistem template pada view.


Secara relatif path controller aplikasi terletak di dalam path application/controller dan untuk modul terletak di modules/<nama_module>/classes/controller.

Relatif disini adalah pathnya, secara absolut untuk controller aplikasi adalah c:\xampp\htdocs\kohana\application\controller. Dalam tutorial ini, semua path bersifat relatif.

Controller pertama kita

Buatlah satu file baru dengan nama product.php di direktori application/controller. Kemudian isi file tersebut dengan

<?php 

class Controller_Product extends Controller {
	public function action_index()
	{
		$this->response->body('Daftar Produk');
	}

	public function action_add()
	{
		$this->response->body('Tambah Produk');
	}

	public function action_detail()
	{
		$id = $this->request->param('id');
		$this->response->body('Detail Produk ' . $id);
	}
}

Simpan isi file tersebut. Jalankan diperambah alamat ini http://localhost/kohana/index.php/product, tampilan yang akan keluar adalah sebagai berikut

Untuk action_add(), jalankan http://localhost/kohana/index.php/product/add, tampilan yang akan keluar adalah sebagai berikut

Untuk action_detail, jalankan http://localhost/kohana/index.php/product/detail/1, tampilan yang akan keluar adalah sebagai berikut

Route

Semua terjadi seperti sudah ada yang mengatur, seperti penjabaran sebelumnya pengaturnya adalah kelas route. Bukalah file application/bootstrap.php temukan baris ini (lokasinya umumnya berada di bawah)

Route::set('default', '(<controller>(/<action>(/<id>)))')
	->defaults(array(
		'controller' => 'welcome',
		'action'     => 'index',
	));

Dalam potongan kode di atas kita bisa melihat bahwa kita menambahkan route dengan nama default, yang berisi pola URI (<controller>(/<action>(/<id>)). Masing – masing tanda kurung merupakan opsional, apabila kosong maka diisi dengan controller default welcome dan action defaultnya adalah index.

Pada action_detail kita melihat kode $this->request->param(‘id’), pada pola rute ini sudah didefinisikan id yang berada diakhir pola URI.

Rute ini adalah fail safe atau rute terakhir. Kohana tidak menyarankan prinsip sapu jagat, jadi buatlah rute khusus untuk menangani URI yang dikirim oleh pengguna. Sebagai contoh saya ingin mengubah action_add bisa diakses dengan param create.

Route::set('product_add', 'product/create/')
	->defaults(array(
		'controller' => 'product',
		'action'     => 'add',
	));

Tambah potongan kode ini di atas dari rute fail safe tadi. Sekarang, jalankan http://localhost/kohana/index.php/product/create. Tampilan yang sama dengan action add akan muncul.

Clean URL

Mengakses dengan adanya index.php pada URI cukup menganggu, kita bisa membuatnya menjadi URI seperti ini http://localhost/kohana/product. Hal ini cukup mudah untuk dilakukan di Kohana.

Pertama, kita perlu mengubah example.htaccess menjadi .htaccess. Jika anda menggunakan Microsoft Windows, hal ini tidak bisa anda lakukan di Windows Explorer. Anda perlu mengubahnya melalui command prompt. Caranya adalah sebagai berikut:

  1. Tekan tombol windows + R dikeyboard anda atau mengakses Run.
  2. Ketik cmd
  3. Ketik cd c:\xampp\htdocs\kohana\
  4. Ketik ren example.htaccess .htaccess

Setelah diubah maka editlah file .htaccess tersebut. Dan pada awal baris akan ditemukan

# Installation directory
RewriteBase /

Karena direktori kohana berada di bawah root, yakni htdocs, maka perlu kita ubah menjadi

# Installation directory
RewriteBase /kohana/

Setelah itu, kita perlu memberitahukan kepada Kohana bahwa kita ingin menggunakan URI tanpa index.php temukan baris – baris ini pada application/bootstrap.php

Kohana::init(array(
	'base_url'   => '/',
));

Kemudian tambahkan / ubah menjadi

Kohana::init(array(
	'base_url'   => '/kohana/',
	'index_file' => FALSE,
));

Sekarang anda dapat mengakses controller product dengan URI http://localhost/kohana/product.

Anda sekarang telah dapat membuat controller dan routing dasar yang bisa anda mulai untuk mengerjakan pemograman, selanjutnya kita akan membahas Controller dengan memanfaatkan View.

Comments

  1. pasarjogja.com says:

    kalo misal:
    pake npp (notepad++),
    buka file c:xampphtdocskohanaexample.htaccess

    Save a copy As
    .htaccess

    —-
    bisa kok om

    salam,

    pasarjogja.com – belajar di xampp

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