\$compile_id {/programmers/api-variables/variable-compile-id/}
持久化编译标识符。作为将相同的 $compile_id 传递给每个函数调用的替代方法,您可以设置此 $compile_id,然后随后将隐式使用它。
如果您在不同的 预过滤器和/或后过滤器 中使用相同的模板,则必须使用唯一的 $compile_id 来保持编译后的模板文件分开。
例如,如果您在编译时使用一个 预过滤器 来本地化模板(即:将语言相关部分翻译为不同语言),那么您可以使用当前语言作为 $compile_id,这样您将为每种语言获得一组编译后的模板。
<?php
$smarty->compile_id = 'en';
?>
另一个应用场景是在多个域名/多个虚拟主机之间使用相同的编译目录。
<?php
$smarty->compile_id = $_SERVER['SERVER_NAME'];
$smarty->compile_dir = '/path/to/shared_compile_dir';
?>
注意
在 Smarty 3 中,不再需要使用
$compile_id来将具有相同名称的模板文件分开放置在不同的$template_dir文件夹 中。编译和缓存的模板文件名中编码了$template_dir文件路径。