$compile_id

    持续化的编译识别符。我们不用在每次函数调用时显式传递同一个$compile_id,而是可以设置该$compile_id,而它将被隐式调用。

    使用$compile_id,你可以绕开对不同的$template_dirs不能使用相同的$compile_dir的限制。如果你对每个$template_dir赋予一个唯一的$compile_id,那么Smarty就可以根据它们的$compile_id来区别各个编译的模板。

    例如,在编译时你有一个前过滤器以当地化你的模板(即:翻译与语种相关的部分),那么你就可以用当前语种作为$compile_id,从而对于每个你使用的语种,你将获得一套编译的模板。

    另一个应用是,对于多域名/多虚拟主机使用相同的编译目录。

例子12-6. 虚拟主机环境下的$compile_id

<?php

$smarty
->compile_id $_SERVER['SERVER_NAME'];
$smarty->compile_dir '/path/to/shared_compile_dir';

?>