Saat menggunakan caching fragmen atau caching halaman, kita sering mengalami situasi di mana seluruh bagian output relatif statis kecuali pada satu atau beberapa tempat. Sebagai contoh, halaman bantuan mungkin menampilkan halaman statis informasi bantuan dengan nama pengguna yang saat ini masuk ditampilkan di atas.
Untuk memecahkan masalah ini, kita dapat memvariasikan konten cache berdasarkan pada nama pengguna, tetapi cara ini membuang ruang cache yang berharga karena kebanyakan isinya sama kecuali nama pengguna. Kita juga bisa membagi halaman ke dalam beberapa fragmen dan menembolokannya secara individual, tapi ini mempersulit tampilan kita dan menjadikan kode kita sangat kompleks. Pendekatan yang lebih baik adalah penggunaan fitur konten dinamis yang disediakan oleh CController.
Konten dinamis berarti sebuah fragmen output yang tidak harus di-cache meskipun disertakan di dalam fragmen cache. Untuk membuat konten selalu dinamis, harus dibuat setiap kali meskipun penyertaan konten sedang dilayani dari cache. Dikarenakan alasan ini, kita memerlukan konten dinamis yang dibuat oleh beberapa metode atau fungsi.
Kita memanggil CController::renderDynamic() untuk menyisipkan konten dinamis di tempat yang diinginkan.
...konten HTML lain... if($this->beginCache($id)) { ...konten fragmen yang ditembolok... $this->renderDynamic($callback); ...konten fragmen yang ditembolok... $this->endCache(); } ...konten HTML lain...
Dalam contoh di atas, $callback
merujuk pada PHP callback yang benar. $callback
bisa berupa string yang merujuk ke nama metode dalam kelas controller saat ini atau
fungsi global. $callback
juga bisa berupa array yang merujuk ke metode kelas. Setiap
parameter tambahan pada renderDynamic()
akan dioper ke callback. Callback harus mengembalikan konten dinamis daripada
menampilkannya.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.