Panada Framework 1.0.0 Documentation

Cache

Saat ini, driver Obeject Cache yang sudah tersedia adalah APC, Memcache dan Memcached.

Sebelum menggunakan library cache, terlebih dahulu harus dilakukan konfigurasi. Bagian konfigurasi database terletak pada file app/config/cache.php.

Konfigurasi

Bagian-bagian yang harus dilengkapi namaKoneksi dan driver.

Saat ini pilihan driver yang tersedia adalah apc, memcache dan memcached.

Sebagai contoh, konfigurasi di atas adalah jika ingin mengunakan APC sebagai cache.

Nilai default pada konfigurasi menunjukan koneksi cache default. Jika Anda menginginkan koneksi cache yang lain silahkan tambahkan nama baru pada bagian ini. Sebagai contoh:

Inisialisasi

Berikut adalah contoh membuat instance untuk Cache baik itu di dalam model ataupun controller:

Method

Untuk berinteraksi dengan cache driver, berikut adalah API yang tersedia:

setValue

Melakukan penyimpanan data yang akan di-cache.

mix $this->cache->setValue($key, $value, $expire = 0, $namespace = false);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier cache.
$value mix Nilai yang akan disimpan ke dalam cache.
$expire int Berapa lama cache akan disimpan dalam satuan detik.
$namespace string Key dari namespace yang ingin digunakan.

addValue

Melakukan penyimpanan data yang akan di-cache hanya jika key yang diberikan belum pernah digunakan sebelumnya. Jika ternyata key-nya sudah digunakan maka nilai returnnya adalah false.

mix $this->cache->addValue($key, $value, $expire = 0, $namespace = false);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier cache.
$value mix Nilai yang akan disimpan ke dalam cache.
$expire int Berapa lama cache akan disimpan dalam satuan detik.
$namespace string Key dari namespace yang ingin digunakan.

updateValue

Melakukan update data yang sudah di-cache berdasarkan key yang diberikan.

mix $this->cache->updateValue($key, $value, $expire = 0, $namespace = false);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier cache.
$value mix Nilai yang akan disimpan ke dalam cache.
$expire int Berapa lama cache akan disimpan dalam satuan detik.
$namespace string Key dari namespace yang ingin digunakan.

getValue

Mendapatkan data yang sudah di-cache berdasarkan key yang diberikan.

mix $this->cache->getValue($key, $namespace = false);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier cache.
$namespace string Key dari namespace yang ingin digunakan.

deleteValue

Menghapus data yang sudah di-cache berdasarkan key yang diberikan.

mix $this->cache->deleteValue($key, $namespace = false);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier cache.
$namespace string Key dari namespace yang ingin digunakan.

flushValues

Menghapus semua data yang sudah di-cache.

bool $this->cache->flushValues();

incrementBy

Melakukan penambahan secara interval dengan nilai tertentu.

int $this->cache->incrementBy($key, $offset = 1);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier nilai.
$offset int Nilai penambah.

decrementBy

Melakukan pengurangan secara interval dengan nilai tertentu.

int $this->cache->decrementBy($key, $offset = 1);

Parameter

Variable Tipe Data Keterangan
$key string Nama key unik sebagai identifier nilai.
$offset int Nilai penambah.

Namespace

Namespace bisa dignakan jika Anda ingin melakukan modifikasi data cache dengan beberapa key yang berbeda-beda secara bersamaan.

Sebagai contoh jika ada sebuah data yang Anda tampilkan dengan cara paging. Setiap halaman dapat menampung 10 data dimana data ini kemudian disimpan ke dalam cache. Key dari masing-masing halaman misalnya comment_page_1, comment_page_2, comment_page_3 ... dst. Jika ada data baru yang ingin ditambahkan dan semua data ini perlu di flush, maka untuk melakukan hal ini cukup dengan menghapus namespace-nya saja. Berikut adalah contohnya:

API Spesifik Driver

Selain dari API yang sudah disediakan, Anda juga bisa menggunakan API yang tersedia dari masing-masing driver.

Diskusi