Dalam OOP, class dan objek adalah hal dasar yang perlu diketahui untuk dapat membuat aplikasi menggunakan pendekatan ini. Jika Anda sudah pernah menggunakan class pada php dan ingin mengimplementasikan pada fusebox, maka disinilah Anda bisa memulainya ![]()
Misal Anda mempunyai class Karyawan, dengan kode sebagai berikut:
class Karyawan {
private $DB;
public function __construct(){
global $db;
$this->DB = $db;
}
public function getByNIP($nip) {
$db = $this->DB;
$sql = "select * from karyawan where nip=?";
return $db->GetRow($sql,array($nip));
}
}
Bagaimana menerapkannya pada fusebox? Pada file fusebox.xml buatlah tag <classes> jika belum ada dibawah root <fusebox>. Kemudian tambahkan tag class di dalam tag classes tersebut:
<class alias="Karyawan" classpath="classes/Karyawan.php" />
Dengan menambahkan tag class, maka class Karyawan dapat digunakan pada semua circuit dalam aplikasi fusebox tersebut. Berikut adalah contoh penggunaannya dalam circuit.xml:
<instantiate class="Karyawan" object="karyawan"/> <invoke object="karyawan" methodcall="getByNIP($attributes['nip'])" returnvariable="data" /> <include template="dsp_data" />
Tag instantiate jika diterjemahkan kedalam kode php menjadi:
$karyawan = new Karyawan;
Sedangkan tag invoke jika diterjemahkan kedalam php menjadi:
$data = $karyawan->getByNIP($attributes['nip']);
Karena tag invoke mengembalikan variabel $data, maka dapat kita gunakan dalam fuse dsp_data, sebagai berikut:
<?php echo "Detail Karyawan<br/>"; echo "NIP: " .$data['nip']."<br/>"; echo "Nama : " . $data['nama']."<br/>"; echo "Alamat: " .$data['alamat']."<br/>"; ?>
Dengan demikian kita juga menerapkan pola MVC(Model-View-Controller) walaupun secara implisit. Dapat kita lihat bahwa class adalah model dari aplikasi kita, kemudian file fuse (.php) adalah viewnya dan semuanya dikontrol melalui circuit.
#1 by Anonymous on August 1st, 2009
Thank you very much for that great article