第一个问题就很要命:提示说找不到所需文件?并不是每一个人都按照 SMARTY默认目录结构来写应用的。这里需要手工指定,假设目录结构如下:
就需要在index.php里指定目录结构:
引言:
--------------------------------------------------------------------------------
$smart->template_dir = "smarty/templates/";
$smart->compile_dir = "smarty/templates_c/";
$smart->config_dir = "smarty/configs/";
$smart->cache_dir = "smarty/cache/";
--------------------------------------------------------------------------------
第一个问题解决了,紧接着就是第二个:我刚用Dreamweaver生成的漂亮模板 怎么不能用?并不是模板文件有什么问题,而是因为SMARTY默认的标记分隔 符是{},不巧的是Javascript肯定包含这个标记。好在我们可以用任意字符当作 分隔符,再加上这两句:
引言:
--------------------------------------------------------------------------------
$smart->left_delimiter = "{/";
$smart->right_delimiter = "/}";
--------------------------------------------------------------------------------
这下安装就基本完成,没问题了。
四、反衬和类比
先构思一下对测试的设计。主要的评比因素当然是速度了。为了进行速度测 试,采取了算术平均数的作法。在测试页面中重复将页面生成N遍,再对比总页 面生成时间。另一个重要因素是易用性(至于扩展性不用比较已经有结果了),所 以使用的模板不能太小。我用的是我个人主页的的页面,一个用 Firework+Dreamweaver生成的HTML文件,大小约7K。其中的变量设置也采取 最常用的区块,在PHPLIB template里叫block,而SMARTY则称section。别小看 这称呼的不同,易用性标准分两块:模板文件和脚本文件的语法是否简明易 用。
下面就深入到测试中来。先看看两种模板文件的语法:蓝条左边是PHPLIB template的模板,右边属于SMARTY。个人偏好是不一样的,所以这里不作评 论。着重对比一下脚本里的处理语句,先看PHPLIB template的:
引言:
--------------------------------------------------------------------------------
$tpl->set_file('phplib', 'bigfile.htm');
$tpl->set_block('phplib', 'row', 'rows');
for ($j = 0; $j < 10; $j++){
$tpl->set_var('tag' ,"$j");
$tpl->parse('rows', 'row', true);
}
$tpl->parse('out', 'phplib');
$tpl->p('out');
--------------------------------------------------------------------------------
下面是SMARTY的:
引言:
--------------------------------------------------------------------------------
$smart->assign('row',$row);
$smart->display('bigfile.htm');
--------------------------------------------------------------------------------







