Koleksi adalah struktur data dasar dalam pemrograman. Sebagai tambahan pada pemrograman PHP, array dipakai secara luas untuk mewakili koleksi struktur data. Array PHP adalah campuran dari array berindeks-kardinal dan tabel campuran.
Untuk menghidupkan manipulasi obyek-terorientasi atas koleksi, PRADO menyediakan kelas koleksi bertenaga. Diantaranya, TList dan TMap adalah yang paling mendasar dan biasanya melayani sebagai basis kelas untuk kelas koleksi lainnya. Karena banyak komponen PRADO memiliki properti yang bertipe koleksi, penting bagi para pengembang untuk menguasai pemakaian kelas koleksi PRADO.
Obyek TList mewakili array berindeks-kardinal, misalnya array (obyek) dengan indeks 0, 1, 2, ...
TList bisa dipakai seperti array PHP. Sebagai contoh,
Untuk memperoleh jumlah item dalam daftar, gunakan properti Count. Catatan, jangan gunakan count($list), karena ia selalu mengembalikan 1.
Sebagai tambahan, TList menerapkan beberapa metode yang nyaman untuk dipakai secara umum guna memanipulasi data dalam sebuah daftar. Ini termasuk
Seperti telah disebutkan di atas, banyak properti komponen PRADO didasarkan pada TList atau kelas koleksi berasal dari TList. Properti ini semuanya berbagi pemakaian tersebut di atas.
Sebagai contoh, TControl (basis kelas untuk semua kontrol PRADO) mempunyai properti yang disebut Controls yang mewakili koleksi dari kontrol anak. Tipe Controls adalah TControlCollection yang memperluas TList. Oleh karena itu, untuk menambahkan kontrol anak baru, kita dapat menggunakan cara berikut,
Untuk menjelajahi melalui kontrol anak, kita bisa menggunakan,
Controh lain adalah properti Items, tersedia dalam kontrol list, TRepeater, TDataList dan TDataGrid. Dalam kontrol ini, kelas leluhur dari Items adalah TList.
Seringkali kita ingin memperluas TList untuk melakukan operasi tambahan untuk setiap penambahan atau penghapusan sebuah item. Satu-satunya metode yang diperlukan kelas anak untuk mengganti adalah insertAt() dan removeAt(). Sebagai contoh, untuk memastikan daftar hanya berisi item yang bertipe TControl, kita dapat mengganti insertAt() sebagai berikut,
Obyek TMap mewakili tabel campuran (atau kami katakan array berindeks-string).
Mirip dengan TList, TMap bisa dipakai layaknya sebuah array,
Properti Count memberikan jumlah item dalam map sementara properti Keys mengembalikan daftar kunci yang dipakai dalam map.
Metode berikut disediakan oleh TMap demi kenyamanan,
TAttributeCollection adalah kelas khusus yang diperluas dari TMap. Ia dipakai terutama oleh properti Attributes dari TControl.
Selain fungsionalitas normal yang disediakan oleh TMap, TAttributeCollection membolehkan anda untuk mendapatkan dan menyetel item koleksi seperti mendapatkan dan menyetel properti. Sebagai contoh,Catatan, dalam $collection di atas TIDAK mempunyai properti Label.
Tidak seperti TMap, kunci dalam TAttributeCollection tidak sensitif huruf. Oleh karena itu $collection->Label sama dengan $collection->LABEL.
Karena fitur baru di atas, ketika berhadapan dengan properti Attributes dari kontrol, kita dapat mengambil keuntungan dari konsep subproperti dan mengkonfigurasi nilai atribut kontrol dalam sebuah template seperti berikut,
yang menambahkan atribut bernama onclick ke kontrol TButton.