`

`
Powered by Blogger.

penerapan desain pattern adaptor di php



        Design pattern adapter berfungsi untuk menghubungkan 2 buah API class, contohnya yang sering kita temui ialah pada penggunaan koneksi ke database yang berbeda. Dimana pada class utama terdapat fungsi-fungsi yang tidak bisa dirubah, tetapi pada class yang lainnya kita juga membutuhkan beberapa method milik kelas utama. Disinilah fungsi adapter untuk menjembatani keduanya.

       Konsep yang sama juga sering kita lihat pada plugin pihak ketiga yang sering diterapkan pada cms, dimana developer cms tidak mungkin menjangkau plugin-plugin yang dibuat oleh developer pihak ketiga. Dan ketika ada perubahan interface plugin/core aplikasi, seharusnya plugin-plugin buatan pihak ketiga masih bisa berjalan dalam beberapa waktu ke depan. Disinilah adapter menjalankan tugasnya. Di bawah ini, saya coba untuk menerapkan penggunaan design pattern adapter dalam permasalahan koneksi ke berbagai database yang berbeda dengan PHP.


Ada 3 file yang saya gunakan sebagai simulasinya yaitu database.php, mysqlAdapter.php, dan panggilDatabase.php. Class utamanya terdapat pada file database.php.




<?php
//database.php
class database
{
private $host,$user,$pass,$db;
private $tipe_db;
private $query_db;



function __construct($host_p,$user_p,$pass_p,$db_p)
{
$this->host = $host_p;
$this->user = $user_p;
$this->pass = $pass_p;
$this->db = $db_p;
}



public function tipeDatabase($tipe_db_p)
{
$this->tipe_db = $tipe_db_p;
return $this->tipe_db;
}



public function eksekusiQuery($query_p)
{
$this->query_db = $query_p;
return $this->query_db;
}
}
?>

Sekarang saya lanjutkan ke class adapter sebagai penghubungnya. Ciri dari design pattern adapter ialah ada fungsi di dalam class yang menggunakan object lain sebagai parameternya dan pada kasus ini, object class database digunakan sebagai parameter ketika pertama kali class diakses.




<?php
//mysqlAdapter.php
include_once('database.php');
class mysqlAdapter
{
private $database;



function __construct(database $database)
{
$this->database = $database;
}
public function bacaTipeDatabase($tipe)
{
return $this->database->tipeDatabase("mysql");
}
public function bacaTabelTunggal($field,$tbl,$seleksi)
{
$q = "select ".$field." from ".$tbl." ".$seleksi."";
return $this->database->eksekusiQuery($q);
}
public function insertTabelTunggal($tbl,$field,$value)
{
$q = "insert into ".$tbl." ".$field." values ".$value."";
return $this->database->eksekusiQuery($q);
}
}
?>

Dan yang terakhir, ialah memanfaatkan class adapter sebagai jembatan untuk mengakses class database.




<?php
//panggilDatabase.php
include_once("mysqlAdapter.php");



$ob = new database("localhost","root","","db_testing");
$obAdapter = new mysqlAdapter($ob);
echo $obAdapter->bacaTabelTunggal("*","berita","where id_kategori='1'");
echo "<br>";
echo $obAdapter->insertTabelTunggal("berita","(judul,isi,gambar)","('Korupsi Merajalela','Kasus Korupsi Merajalela','korupsi.jpg')");
?>

Dengan database yang berbeda-beda cara pengaksesannya, maka dibutuhkan beberapa class adapter untuk masing-masing database. Inti dari design pattern adapter ini, ialah class inti tidak boleh diubah dan diakses langsung, maka dari itu digunakan adapter untuk perantara pengaksesannya.



Sumber : wikipedia&gedelumbung
Bagikan :
+
Previous
Next Post »
0 Komentar untuk "penerapan desain pattern adaptor di php"

 
Template By Kunci Dunia
Back To Top