Kompetensi Dasar :
3.14 Menerapkan library standar dalam program
4.14 Menggunakan library standar dalam program
Materi Pokok :
1. Library dalam aplikasi program.
2. Menerapkan library dalam perangkat lunak server side.
Mengenal Library Dalam PHP
Library adalah script atau kode program yang berisi variabel, konstanta, tipe data, object dan function-function yang ditulis seseorang atau sekelompok orang sehingga orang lain bisa "menambahkannya" dalam script atau program yang mereka buat.
Dengan library, seseorang bisa mempersingkat script atau kode program mereka tanpa perlu membuat function atau algoritmanya sendiri. Mereka cukup menggunakan function-function atau mungkin object yang sudah terdapat di dalam library. Dengan library, kita bebas menentukan seperti apa susunan script atau kode program kita karena library memang hanya memberikan "jalan pintas" untuk mempermudah penulisan script atau kode program.
Contoh library PHP yang bisa kita gunakan misalnya :
Standard PHP Library (SPL)
Standard PHP Library (SPL) memiliki struktur data baru yakni :
Kelebihan dari SplObjectStorage dibandingkan dengan array biasa adalah menjaga tidak ada object ganda, menghapus sebuah object dari struktur data, cukup dengan memanggil detach($object).
FilesystemIterator
Standard PHP Library (SPL) juga menyediakan beberapa iterator yang dipakai dalam perulangan foreach. Sebagai contoh, ada FilesystemIterator yang dapat dipakai untuk menjelajahi sebuah direktori.
Kode program berikut akan menampilkan nama dan ukuran file/direktori di root direktori drive C:
|
CallbackFilterIterator
Sebuah iterator dapat di-filter lagi menggunakan CallbackFilterIterator. Sebagai contoh, script diatas menyaring hasil FilesystemIterator diatas agar hanya mengembalikan nama file dan mengabaikan direktori, dengan kode program seperti:
|
LimitIterator
LimitIterator dapat dipakai untuk membatasi iterator lainnya. Sebagai contoh, pada kode program dibawah ini, ArrayIterator seharusnya melakukan perulangan sebanyak 15 kali, tetapi LimitIterator menyebabkan perulangan hanya 10 kali saja:
|
Semua class yang mengimplementasikan interface Countable dapat dipakai dengan fungsi sizeof() dan count(). Selain itu, dapat mengimplementasikan Iterator sehingga class dapat dipakai pada struktur foreach.
IteratorAggregate
Alternatif lainnya, bila sudah memiliki iterator di dalam class, dapat mengekposnya dengan mengimplementasikan interface IteratorAggregate. Contoh, pada kode program berikut ini, class Pembelian dapat dipakai pada sizeof()/count() dan juga mendukung perulangan dengan foreach:
|
ArrayAccess
Hal yang lebih menarik lagi adalah dengan mengimplementasikan interface ArrayAccess, sehingga dapat membuat class menjadi seperti array. Sebagai contoh, membuat instance dari class Pembelian di atas dapat diakses seperti array, misalnya: $p[0] akan mengembalikan item pembelian pertama, $p[1] akan mengembalikan item pembelian kedua, dan seterusnya. Untuk itu, ubah kode program menjadi seperti berikut ini:
|
SplSubject dan SplObserver
Pada design pattern di PHP, sebuah subject class dapat memiliki satu atau lebih class lain sebagai observer. Kemudian saat subject class memberikan notifikasi dengan memanggil notify(), maka method update pada seluruh class observer akan dikerjakan.
Contoh penggunaan observer design pattern dapat dilihat di view Griffon (untuk melakukan binding) seperti saat JTextField berubah nilainya (user mengetik), maka nilai property di model akan di-update sesuatu dengan apa yang diketik.
Untuk melakukan operasi file secara OOP, SPL menyediakan class SplFileInfo, SplFileObject dan SplTempFileObject. Sebagai contoh, kode program berikut ini akan membuat file baru:
|
SPL juga menyediakan class ArrayObject untuk memakai array di PHP secara OOP. Berikut ini adalah contoh kode program yang memakai ArrayObject:
|