What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Anda dapat memiliki multipel file cache untuk satu panggilan ke display() atau fetch(). Katakanlah sebuah panggilan ke display('index.tpl') memiliki beberapa konten output berbeda tergantung dari beberapa kondisi, dan anda ingin memisahkan cache masing-masing. Anda bisa melakukan ini dengan mengirimkan $cache_id sebagai parameter kedua ke fungsi panggil.
Di atas, kita mengirimkan variabel $my_cache_id ke display() sebagai $cache_id. Untuk setiap nilai unik dari $my_cache_id, cache terpisah akan dibuat untuk index.tpl. Dalam contoh ini, article_id dikirimpan dalam URL dan digunakan sebagai $cache_id.
Catatan Teknis: Harap berhati-hati saat mengirimkan nilai dari klien (web browser) ke dalam Smarty atau setiap aplikasi PHP. Meskipun contoh di atas menggunakan article_id dari URL terlihat mudah, ia dapat menimbulkan konsekuensi yang buruk. $cache_id dipakai untuk membuat direktori pada sistem file, maka jika pengguna memutuskan untuk mengirimkan nilai yang sangat besar untuk article_id, atau menulis naskah yang mengirimkan article_id acak dengan kecepatan tinggi, ini mungkin dapat menimbulkan masalah di tingkat server. Pastikan mengamankan setiap data yang dikirimkan sebelum menggunakannya. Dalam contoh ini, mungkin anda mengetahui article_id memiliki panjang sepuluh karakter dan hanya terdiri dari alfa-numerik, dan harus article_id yang benar dalam database. Periksa hal ini!
Pastikan untuk mengirimkan $cache_id yang sama sebagai parameter kedua ke is_cached() dan clear_cache().
Anda bisa membersihkan semua cache untul $cache_id tertentu dengan mengirimkan NULL sebagai parameter kedua ke clear_cache().
Dengan cara ini, anda bisa "mengelompokan" cache anda bersama dengan memberikannya $cache_id yang sama.