以下是解决方案,在xampp 1.7.2 for Windows,Windows XP上测试通过:
1. 解压smarty压缩包里的
libs
目录到c:\xampp\php\smarty\
目录下。当然,你可以放到其他地方;2. 设置
php.ini
,在include_path
参数后面加上;c:/xampp/php/smarty/libs
,重启apache;3. 在smarty目录下创建template_c和cache目录,在项目目录下创建templates和configs目录,你也可以创建在别处或使用其他目录名;
4. 在每个项目的libs目录中创建一个文件,命名为mysmarty.php(或者其他名字,或存在别处),内容如下:
// load Smarty library
require('Smarty.class.php');
class my_smarty extends Smarty
{
function __construct()
{
// 我把PHP4风格的构造函数改成了PHP5风格,不知道有没有错误。
$this->template_dir = 'c:/xampp/htdocs/项目目录/templates';
$this->config_dir = 'c:/xampp/htdocs/项目目录/configs';
$this->compile_dir = 'c:/xampp/php/smarty/templates_c';
$this->cache_dir = 'c:/xampp/php/smarty/cache';
}
}
?>
5. 以后在index.php中调用Smarty的时候可以这样:
require('libs/mysmarty.php');
$smarty = new my_smarty();
$smarty->assign("name", "idevel.cn");
$smarty->assign("title", "欢迎");
$smarty->display("index.tpl");
?>
目前这样一切OK,有问题的话,以后再写出来。
update:
好吧,其实原文的才是正解。Smarty要支持PHP4,所以用了古老的构造函数。我这么改是画蛇添足。等Smarty 3发布,纯PHP5的支持,就不会有这样的问题了。
没有评论:
发表评论