2013/7/19 00:00

 Edited by Buru

安装背景:因为公司需要,本人刚学的php,为了分离前后端工作,更是为了逻辑代码跟html代码分离,我选择使用smarty这样的模板引擎。

写在前面:首先将我参考的两篇文章供上:1:smarty官网提供的中文文档(by jake)2:PHP模板之Smarty安装与使用入门教程。通过结合两者的文章,然后再根据我自己的完成了smarty的安装,我认为按照我的安装方法跨操作系统,移植性比较好,如果想要看其他的方法,可以参考我提供的两篇文章,两篇写得很详细。

步骤如下:(这里就简单介绍一下步骤)

1:下载smarty我下载的版本为3.1.14稳定版。

       2:将下载的smarty目录下的libs目录重命名为smarty,拷贝到你项目的根目录。(因为这个目录不应该被用户访问到,所以为了安全考虑,你可以通过apache禁止相关目录访问。)          

       3:在重命名为smarty的文件夹下新建四个文件夹,分别为:

$template_dir:设定所有模板文件都需要放置的目录地址。默认情况下,目录是:“./templates”,也就是在PHP执行程序同一个目录下寻找该模板目录。

       $compile_dir:设定Smarty编译过的所有模板文件的存放目录地址。默认目录是:“./templates_c”,也就是在PHP执行程序同一个目录下寻找该编译目录。如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。

       $config_dir:设定用于存放模板特殊配置文件的目录,默认目录是:“./configs”,也就是在PHP执行程序同一个目录下寻找该配置目录。

       $cache_dir:在启动缓存特性的情况下,这个属性所指定的目录中放置Smarty缓存的所有模板。默认目录是:”./cache”,也就是在PHP执行程序同一个目录下寻找该缓存目录。你也可以用你自定义的缓存处理函数来控制缓存文件,它将会忽略这项设置。同样如果你在Linux服务器上创建这个目录,你还需要修改此目录的权限,使它有写的权限。

       4:在重命名为smarty的文件夹在新建一个start_smarty.php文件,内容如下:

function start(){
//定义SMARTY_DIR常量为smarty目录的路径,末尾以路径分隔符结束,因为没有使用诸如“/"或者”\“,所以在windows或者linux中都正常执行
    if(!defined("SMARTY_DIR")){
        define("SMARTY_DIR",dirname(__FILE__).DIRECTORY_SEPARATOR);
        require_once(SMARTY_DIR . DIRECTORY_SEPARATOR."Smarty.class.php");
    }
    $tpl = new Smarty();
//设置smarty的四个文件夹路径
    $tpl->template_dir = SMARTY_DIR."templates". DIRECTORY_SEPARATOR;
    $tpl->compile_dir = SMARTY_DIR."templates_c". DIRECTORY_SEPARATOR;
    $tpl->config_dir = SMARTY_DIR."configs". DIRECTORY_SEPARATOR;
    $tpl->cache_dir = SMARTY_DIR."cache". DIRECTORY_SEPARATOR;
//返回tpl这个对象
    return $tpl;
}

  5:建立测试文件测试啦。

(一):在新建好的templates目录下创建一个文件,重命名为test.tpl,内容如下:

{* Smarty *}
Hello {$name}, welcome to Smarty!

(二):同样在templates目录下创建一个test.php,内容如下:

<?php
    include_once("../start_smarty.php");
    $tpl = start();
    $tpl->assign("name","red");
    $tpl->display("test.tpl");
?>

 (三):打开网站地址查看结果应该如下:

003928153.png