Bab 16. Memperluas Smarty Dengan Plugins
Versi 2.0 memperkenalkan arsitektur plugin yang dipakai
untuk hampir semua fungsionalitas Smarty yang dapat
dikustomisasi. Ini termasuk:
- fungsi
- pengubah
- fungsi blok
- fungsi kompilator
- prefilter
- postfiltes
- outputfilter
- sumber daya
- penyisipan
Dengan mengecualikan sumber daya, kompatibilitas balik dengan cara
meregistrasi fungsi pengendali via register_* API dipelihara. Jika anda
tidak menggunakan API tapi sebaliknya mengubah variabel kelas
$custom_funcs,
$custom_mods, dan
yang lainnya secara langsung, maka anda perlu menyesuaikan naskah anda baik
untuk menggunakan API ataupun mengubah fungsionalitas kustom anda ke dalam
plugins.
Bagaimana Plugin Bekerja
Plugin selalu diambil saat dibutuhkan. Hanya pengubah tertentu,
fungsi, sumber daya, dll yang diminta dalam naskah template akan diambil.
Selanjutnya, setiap plugin diambil hanya sekali, meskipun anda mempunyai
beberapa turunan Smarty yang berjalan dalam permintaan yang sama.
Pre/postfilters dan filter output sedikit dari hal khusus. Karena tidak
disetbutkan dalam template, ini harus didaftarkan atau diambil secara
eksplisit melalui fungis API sebelum template diproses.
Urutan di mana multipel filter dengan tipe sama dijalankan tergantung
pada urutan di mana ia didaftarkan atau diambil.
Direktori plugin
dapat berupa string yang berisi path atau array yang berisi multipel
path. Untuk menginstalasi sebuah plugin, cukup tempatkan dalam salah satu
direktori dan Smarty akan menggunakannya secara otomatis.