$compile_id
Pengenal kompilasi persisten. Sebagai alternatif untuk mengirimkan $compile_id yang sama ke setiap fungsi panggil, anda bisa menyetel $compile_id ini dan ia akan dipakai secara implisit setelahnya.
Dengan $compile_id anda bisa mengatasi batasan di mana anda tidak bisa memakai $compile_dir yang sama untuk $template_dirs yang berbeda. Jika anda menyetel $compile_id untuk setiap $template_dir maka Smarty bisa memberitahu bagian template terkompilasi dengan $compile_id-nya.
Jika anda mempunyai misalnya prefilter yang melokalisir template anda (yaitu: menterjemahkan bahasa bagian tersendiri) saat waktu kompilasi, selanjutnya anda dapat memakai bahasa saat ini sebagai $compile_id dan anda akan mendapatkan satu set template terkompilasi untuk setiap bahasa yang anda gunakan.
Apliukasi lain akan menggunakan direktori kompilasi yang sama melalui multipel domain / multipel host virtual.