$compile_id

永久的编译标识id。这是可选的设置,在每个函数调用的时候均被传入同一个$compile_id,你可以设置$compile_id,随后这个标识id将被隐含地调用。

$compile_id有个限制就是你不能够在多个模板目录$template_dirs的情况下使用同一个编译标识id$compile_dir。如果你单独为每个模板目录都设置一个$compile_id,那么Smarty将自动按$compile_id来对编译文件进行区分。

举个例子,你会在编译时用前置过滤器来本地化你的模板(也就是每个语言均分开),可以用语言名作为$compile_id,那么你就可以为每种语言单独进行编译了。

在多域名 / 多虚拟主机的环境中,其他应用程序也有可能使用同一个编译目录,


Example 13.1. 虚拟主机环境的$compile_id

  1. <?php
  2.  
  3. $smarty->compile_id = $_SERVER['SERVER_NAME'];
  4. $smarty->compile_dir = '/path/to/shared_compile_dir';
  5.  
  6. ?>
  7.  

原文: https://www.smarty.net/docs/zh_CN/variable.compile.id.tpl