$use_sub_dirs

$use_sub_dirs设置成true的时候, Smarty将在编译目录缓存目录下面创建子目录。默认是false。在一些情况下,上述的目录有可能会生成成千上万的文件,建立子目录的方式有助于加快文件系统的搜索速度。另外,一些环境是不允许PHP进程创建目录的,所以这只能默认是关闭。

子目录是非常高效的,所以如有可能的话,尽可能采用它。理论上来说,在文件系统上的10个目录里每个目录有100个文件,比起1个目录有1000个文件,前者性能高得多。在Solaris 7 (UFS)系统上已经被证实了这点,还有较新的文件系统如ext3,甚至是reiserfs,均大同小异。

技术说明

  • $use_sub_dirs=true不会和safe_mode=On一起工作,那就是为什么它是可选并且默认关闭的。

  • 在Windows上设置$use_sub_dirs=true将会引起一些问题。

  • PHP6已经废除了安全模式。

参见 $compile_id, $cache_dir, 和 $compile_dir.

原文: https://www.smarty.net/docs/zh_CN/variable.use.sub.dirs.tpl