Chain Method Di PHP


Image Source: flaticon

Pernah dengar istilah chain method sebelumnya ?, chain method adalah sebuah method dari class yang dapat kita panggil secara terus menerus sampai menampilkan hasil yang diinginkan. agak pusing ya ? :D, maaf ya itu memang pendapat saya aja.

ok, biar gak pusing, saya kasih contoh aja ya. misalnya ada sebuah string dengan nilai sebagai berikut

"h=ello+-w@orl+d"

string yang kita inginkan adalah "hello world" 

maka umumnya kita akan menggunakan perintah str_replace() untuk mengganti/menghapus string yang tidak perlu, contoh umumnya seperti kutipan kode berikut

<?php
$str = "h=ello+-w@orl+d";
$res = str_replace("+","",str_replace("-"," ",str_replace("=","",$str)));

cukup panjang juga ya kan ?, dan agak susah juga untuk membaca code nya. 

oleh karena itu, dalam artikel ini saya akan membuat contoh kode chain method untuk menghapus/mengganti  sebuah string, berikut adalah class yang saya buat



<?php
/*this is example how to replace string with chain method*/
class ChainMethod
{
protected $str;
protected $json;
public function from($str)
{
$this->str = $str;
return $this;
}
public function rep($val, $rep="")
{
$this->str = \str_replace($val, $rep, $this->str);
return $this; //
}
public function raw()
{
return $this->str;
}
public function get($key)
{
$this->str = json_decode($this->str)->{$key};
return $this;
}
public function json()
{
return json_decode($this->str);
}
}
// example
// $data = (new ChainMethod())->from('\n/*hello""*/)}]')->rep('/*')->rep('*/')->rep('""')->rep(')]}')->rep("'\\n")->raw();
view raw ChainMethod.php hosted with ❤ by GitHub

Jika menggunakan class diatas, kita hanya perlu menulis kode sebagai berkikut

(new ChainMethod())->from($str)->rep('=')->rep('+')->rep('-',' ')->raw();

ok, cukup mudah dipahami ya kan ?, silahkan dikembangkan sendiri

Comments