PHP Chaining (Merantai) Method

 Author : hadinug, 05 April, 2014, Komentar

Membuat sebuah function jQuery yang merantai munkin sudah biasa dan memang salah satu kelebihan dari jQuery itu sendiri. Namun kalau membuat sebuah function atau method pada class PHP dimana pemanggilannya dilakukan dalam bentuk merantai mungkin bisa jadi "jarang".



Terinspirasi oleh class ORM framework PHP CodeIgniter, disini penulis ingin mencoba menularkan sedikit pengalaman tentang bagai mana membuat sbuah methode atau function yang di panggil secara merantai di PHP.


Simple Hello Class

Disini kita akan membuat sebuah method chaining sederhana bagai mana menampilkan kata "hello world" dengan method class yang di panggil secara merantai.

<?php

class Hello{
    
    public function say(){
        echo "I wan to say ";
        return $this;
    }
    
    public function text($text){
        echo $text;
        return $this;
    }
    
}

$h = new Hello();
$h->say()->text('Hello World');

Jalan kode PHP diatas maka akan kelua rtulisan di halaman web "I wan to say Hello World". Nah kali ini kita coba naik sedikit level nya, dengan membuat prototype database Objek sederhana dengan method chaining.

Class DB


<?php

class DB {

    public function select($field = null) {
        if ($field != null) {
            echo "SELECT $field ";
            return $this;
        }
        return false;
    }

    public function from($tableName = null) {
        if ($tableName != null) {
            echo " FROM ".$tableName;
            return $this;
        }
    }

    public function where($field = null, $value = null) {
        $string = ' WHERE ';
        if (is_array($field)) {
            $no = 0;
            foreach ($field as $key => $value) {
                if ($no > 0) {
                    $string.= " AND $key ='$value'";
                } else {
                    $string.=" $key ='$value'";
                }
                $no++;
            }
        } else {
            $string.=" $field ='$value'";
        }
        echo $string;
        return $this;
    }

}

$t = new DB();
$t->select('*')
        ->from('table_A')
        ->where(array(
            "id" => '1',
            "name" => "hadinug"
                )
);

Jika dijalan kan makan akan tampil sebuah string query sbb:

SELECT * FROM table_A WHERE id ='1' AND name ='hadinug'

Semoga bermanfaat dan cobalah untuk berekplorasi :-)

 
Bagikan halaman ke sosial media
 
Tags :   php5    php       

Tentang Penulis

writer hadinug
Web Developer di PT. Yafii Solusi Internasional

Link: http://ysi.co.id

   Komentar Anda