`

`
Powered by Blogger.

penerapan desain pattern registry di php

   

                  Registry adalah sebuah design pattern yang bertujuan untuk mendaftarkan dan menyimpan properti-properti aplikasi yang dibutuhkan oleh kelancaran jalannya aplikasi. Contohnya ialah seperti penyimpanan konfigurasi, koneksi ke database, tema, nama aplikasi, dan yang lainnya. Properti-properti tersebut bisa juga disimpan dalam sebuah array, sehingga akan mudah dalam pengaksesannya secara global.

                  Sebelumnya, jika ingin memiliki sebuah konfigurasi yang bisa diakses secara global, konfigurasi didefinisikan sebagai variabel global. Teknik tersebut kurang efisien dalam penulisan kode dan sungguh menyulitkan jika ingin menambah properti, karena harus menambahkan ke file konfigurasinya. Di bawah ini, saya coba untuk membuat sebuah class yang memanfaatkan design pattern registry untuk menyimpan properti aplikasi pada bahasa pemrograman PHP.

<?php
class Registry {
    private $_arr;
    private static $_instance;
  private  static $_akses_koneksi = 0;
    private function __construct($arr_properti)
    {
        $this->_arr = $arr_properti;
    self::$_akses_koneksi +=1;
    echo "<p>Mengakses koneksi sebanyak ".self::$_akses_koneksi." kali</p>";
    }
    public static function cekInstance($arr_properti)
    {
        //singleton untuk membatasi pembuatan objek
        if(is_null(self::$_instance))
        {
            self::$_instance = new Registry($arr_properti);
        }
        return self::$_instance;
    }
    public function get($nama_index)
    {
        //untuk mendapatkan value dari properti
        //diakses berdasarkan key-nya/index-nya
        $isi = "";
        if ($this->_arr[$nama_index]!=null )
        {
            $isi = $this->_arr[$nama_index];
        }
        return $isi;
    }
    public function set($nama_index,$isi)
    {
        //menambahkan properti baru
        $this->_arr[$nama_index] = $isi;
        return TRUE;
    }
}
//penggunaannya pada class lain
class Konfigurasi{
  private $_register;
  public function  __construct($conf)
  {
    $this->_register = Registry::cekInstance($conf);
  }
  public function getKonf($nama_index)
  {
      //memanfaatkan function get() yang dimiliki class Registry
      //untuk menampilkan isi properti
    $hasil = $this->_register->get($nama_index);
    return $hasil;
  }
  public function setKonf($nama_index,$isi)
  {
      //memanfaatkan function set() yang dimiliki class Registry
      //untuk menambah isi properti baru
    $this->_register->set($nama_index,$isi);
    return true;
  }
}
//config default, dalam format array
$template_config = array(
  'judul' => 'NgBlog Biar Gak GobloG - BlogNya Gede Lumbung',
  'tema' => 'Liquify Equinox',
  'direktori_tema' => '/wp-content/theme/liquify-equinox',
  'status_seo' => 'aktif',
  'javascript' => 'tidak aktif'
);
$config = new Konfigurasi($template_config);
echo $config->getKonf('judul') . "<br>";
echo $config->getKonf('tema') . "<br>";
echo $config->getKonf('direktori_tema') . "<br>";
$config->setkonf('status_seo', 'tidak aktif');
$config->setkonf('javascript', 'aktif');
echo $config->getKonf('status_seo') . "<br>";
echo $config->getKonf('javascript') . "<br>";
?>



Kode di atas saya kembangkan dari class singleton di postingan kemarin. Kembali saya memanfaatkan singleton dalam pembuatan class registry di atas, agar object tidak dibuat lebih dari sekali. Sejatinya, design pattern singleton dan registry memang saling berpasangan.



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

 
Template By Kunci Dunia
Back To Top