APC
APC (Alternative PHP Cache) adalah modul tambahan di PHP yang dibuat dengan tujuan untuk melakukan caching dan optimalisasi aplikasi.
Bahkan tanpa melakukan perubahan apapun di sisi aplikasi, penggunaan APC dapat meningkatkan performa secara signifikan. Karena itu, sangat disarankan untuk mengaktifkan feature ini di PHP environment Anda.
Untuk menggunakan Library ini, pastikan PHP Anda telah terinstall ekstensi APC. Untuk panduan instalasi, silahkan lihat di halaman ini http://www.php.net/manual/en/apc.installation.php
Inisialisasi
Konfigurasi driver APC di dalam file app/config/cache.php
Inisialisasi Library APC bisa dilakukan di dalam constructor ataupun method yang bersangkutan.
$this->apc = new Resources\Cache();
Matrik Method
Secara natif, APC API datang dengan beberapa fungsi. Untuk kemudahan akses, Panada merubah fungsi-fungsi ini menjadi method-method dari class Driver APC. Hal ini untuk menjaga konsistensi penggunaan fungsi-fungsi yang telah disediakan sehingga tidak ada perbedaan cara pakai antara Driver APC Panada dengan fungsi APC natif. Berikut adalah matrik perubahannya:
PHP APC Native Function | Panada Driver APC Methods | Deskripsi | Manual |
---|---|---|---|
apc_add() | $this->apc->apc_add() | Menyimpan data yang akan dicache dengan key yang belum pernah ada. | http://www.php.net/manual/en/function.apc-add.php |
apc_bin_dump() | $this->apc->apc_bin_dump() | Mendapatkan dump binary dari nama file dan variable yang diberikan. | http://www.php.net/manual/en/function.apc-bin-dump.php |
apc_bin_dumpfile() | $this->apc->apc_bin_dumpfile() | Menjadikan file dari output fungsi apc_bin_dump(). | http://www.php.net/manual/en/function.apc-bin-dumpfile.php |
apc_bin_load() | $this->apc->apc_bin_load() | Menyimapn binary dump ke dalam APC file/user cache. | http://www.php.net/manual/en/function.apc-bin-load.php |
apc_bin_loadfile() | $this->apc->apc_bin_loadfile() | Menyimapn file binary dump ke dalam APC file/user cache. | http://www.php.net/manual/en/function.apc-bin-loadfile.php |
apc_cache_info() | $this->apc->apc_cache_info() | Mendapatkan informasi cache dari APC data store. | http://www.php.net/manual/en/function.apc-cache-info.php |
apc_cas() | $this->apc->apc_cas() | Update nilai cache lama ke yang baru berdasarkan key yang diberikan. | http://www.php.net/manual/en/function.apc-cas.php |
apc_clear_cache() | $this->apc->apc_clear_cache() | Menghapus semua cache yang sudah tersimpan di APC data store. | http://www.php.net/manual/en/function.apc-clear-cache.php |
apc_compile_file() | $this->apc->apc_compile_file() | Menyimpan sebuah file ke dalam bytecode cache. | http://www.php.net/manual/en/function.apc-compile-file.php |
apc_dec() | $this->apc->apc_dec() | Melakukan pengurangan nilai integer cache secara berurutan. | http://www.php.net/manual/en/function.apc-dec.php |
apc_define_constants() | $this->apc->apc_define_constants() | Mendeklarasikan konstanta dan menyimpannya ke dalam APC data store. | http://www.php.net/manual/en/function.apc-define-constants.php |
apc_delete_file() | $this->apc->apc_delete_file() | Menghapus file yang dicache. | http://www.php.net/manual/en/function.apc-delete-file.php |
apc_delete() | $this->apc->apc_delete() | Hapus cache berdasarkan key yang diberikan. | http://www.php.net/manual/en/function.apc-delete.php |
apc_exists() | $this->apc->apc_exists() | Melakukan pengecekan apakah key yang diberikan sudah digunakan sebelumnya. | http://www.php.net/manual/en/function.apc-exists.php |
apc_fetch() | $this->apc->apc_fetch() | Mendapatkan variable yang disimpan dicache berdasarkan key yang diberikan. | http://www.php.net/manual/en/function.apc-fetch.php |
apc_inc() | $this->apc->apc_inc() | Melakukan penambahan nilai integer cache secara berurutan. | http://www.php.net/manual/en/function.apc-inc.php |
apc_load_constants() | $this->apc->apc_load_constants() | Mendapatkan konstanta yang disimpan ke dalam APC data store. | http://www.php.net/manual/en/function.apc-load-constants.php |
apc_sma_info() | $this->apc->apc_sma_info() | Mendapatkan alokasi memori yang digunakan oleh APC. | http://www.php.net/manual/en/function.apc-sma-info.php |
apc_store() | $this->apc->apc_store() | Menyimpan data yang akan dicache. Jika key yang digunakan sebelumnya sudah pernah ada, maka datanya akan digantikan. | http://www.php.net/manual/en/function.apc-store.php |
Berikut penjelasan lebih lanjut beberapa method yang umumnya sering digunakan.
apc_add
Menyimpan data yang akan dicache dengan key yang belum pernah ada.
bool $this->apc->apc_add($key, $var, $ttl = 0);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | string | Key unik sebagai identitas penanda item yang dicache. |
$var | mix string | integer | array | object | boolan | Data yang ingin dicache. |
$ttl | Integer | Waktu yang menunjukan berapa lama item di cache. Format waktu dalam satuan detik. Nilai defaultnya adalah 0, yang berarti cache disimpan selama mungkin. |
apc_store
Menyimpan data yang akan dicache. Jika key yang digunakan sebelumnya sudah pernah ada, maka datanya akan digantikan.
bool $this->apc->apc_store($key, $var, $ttl = 0);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | string | Key unik sebagai identitas penanda item yang dicache. |
$var | mix string | integer | array | object | boolan | Data yang ingin dicache. |
$ttl | Integer | Waktu yang menunjukan berapa lama item di cache. Format waktu dalam satuan detik. Nilai defaultnya adalah 0, yang berarti cache disimpan selama mungkin. |
apc_fetch
Mendapatkan data yang sudah dicache.
mixed $this->apc->apc_fetch($key);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | mix string | array | Key unik sebagai identitas penanda item yang dicache. Jika ingin mendapatkan dari beberapa key sekaligus, simpan masing-masing key-nya ke dalam array. |
apc_delete
Hapus item yang sudah dihapus dari cache berdasarkan key-nya.
bool $this->apc->apc_delete($key)
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | string | Key dari cache yang akan dihapus. |
apc_clear_cache
Hapus semua item cache.
bool $this->apc->apc_clear_cache($cache_type);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$cache_type | string | Jika nilai variable $cache_type adalah user, maka cache yang dihapus adalah semua cache yang sebelumnya Anda simpan. Selain itu sistem cache (cache file) yang akan dihapus. |
apc_inc
Melakukan penambahan nilai incremental berdasarkan nilai item yang ada di cache.
int $this->apc->apc_inc($key, $step = 1, $success);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | string | Key dari item yang dicache. |
$step | Integer | Nilai integer penambah. |
$success | boolean | Variable opsi untuk passing boolean return value. |
apc_dec
Melakukan pengurangan nilai decremental berdasarkan nilai item yang ada di cache.
int $this->apc->apc_dec($key, $step = 1, $success);
Parameter
Variable | Tipe Data | Keterangan |
---|---|---|
$key | string | Key dari item yang dicache. |
$step | Integer | Nilai integer pengurang. |
$success | boolean | Variable opsi untuk passing boolean return value. |
Contoh
Berikut adalah contoh penggunaan dari masing-masing method di atas.