Smarty是什么?
为什么要使用?
使用案例和工作流
语法对比
模板继承
最佳实践
速成课程
持久编译标识符。作为向每个函数调用传递相同的 $compile_id
的替代方案,您可以设置此 $compile_id
,此后将隐式使用此标识符。
使用 $compile_id
可以解决无法为不同的 $template_dirs
使用相同 $compile_dir
的限制。如果您为每个 $template_dir
设置一个不同的 $compile_id
,Smarty 可以通过 $compile_id
区分编译后的模板。
例如,如果您有一个 预过滤器,它在编译时对模板(即翻译与语言相关的部分)进行本地化,那么您可以将当前语言用作 $compile_id
,并且将针对您使用的每种语言获得一组已编译的模板。
另一个应用是可以跨多个域/多个虚拟主机使用同一个编译目录。
示例 13.1 在虚拟主机环境中使用 $compile_id
<?php $smarty->compile_id = $_SERVER['SERVER_NAME']; $smarty->compile_dir = '/path/to/shared_compile_dir'; ?>