$compile_check

设置为true时,PHP程序每次调用时,Smarty都会检查当前的模板从上次编译后是否已经被修改过(依据时间戳), 如果已被修改,它会重新编译该模板。 如果当该模板是从未被编译过的,那么它会忽略此设置并进行编译(不管这变量是否设置成false)。 默认该变量为true。

当程序部署到了生产环境中(模板再也不需要修改),那么此编译检查也就不需要了,最好设置$compile_check为false。 但这时,如果有个模板被修改,在没有重新编译的情况下,你将*不会*看到任何改变。

如果$caching$compile_check同时设置为true, 那么当相关的模板文件或者配置文件被修改的时候,缓存文件将重新生成。

在 Smarty 3.1,$compile_check可以赋值为 Smarty::COMPILECHECK_CACHEMISS。 这会使得Smarty在重新生成某个缓存文件的时候,再次检查对应的编译文件。 也就是假设一个缓存文件存在但已经过期,Smarty会在重新生成缓存之前,启动一个单独的编译检查程序。

参见 $force_compileclearCompiledTemplate().