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"); ?>
(三):打开网站地址查看结果应该如下: