felayman——Smarty的简单入门笔记

1.先看看Smarty的目录结构,我这里使用的是3.1.6,我是按照官方给的源码demo的要求,新建了几个文件夹

felayman——Smarty的简单入门笔记

2.然后在项目目录下新建一个引用Smarty的配置文件我这里就使用了smarty.config.php,如下图

felayman——Smarty的简单入门笔记

我这里是使用自己的类继承Smarty来引导各种文件的路径

<?php

//这里编写引用smarty模板的配置文件

require 'smarty/Smarty.class.php';

define('SMARTY_PATH','./smarty');

class MySmarty extends Smarty{

function MySmarty(){

//设定编写的模板文件的路径

$this->template_dir=SMARTY_PATH.'templates';

//设定编译后的模板文件的路径

$this->compile_dir=SMARTY_PATH.'templates_c';

//设定配置文件的文件路径

$this->config_dir=SMARTY_PATH.'configs';

//设定缓存文件的路径

$this->cache_dir=SMARTY_PATH.'cache';

}

}

?>

然后开始编写自己的第一个Smarty文件,看看是否能成功.

首先是模板文件,在指定的templates下编写一个test_template.html

<!DOCTYPE html>

<html>

<head>

<title>我的第一个Smarty文件</title>

</head>

<body>

账号:{$username}<br/>

密码:{$password}<br/>

</body>

</html>

然后为模板文件里的smarty变量赋值,文件名为index.php

<?php

/**

* Created by PhpStorm.

* User: FelayMan

* Date: 14-3-17

* Time: 下午10:32

*/

//导入自己编写的smarty类

require_once 'smarty.config.php';

//实例化我的smarty类

$smarty = new MySmarty();

$username='fela_yman';

$password='123456';

//为模板文件里的变量赋值

$smarty->assign('username',$username);

$smarty->assign('password',$password);

//显示模板文件(或者是编译)此处如果没有编写自己的MySmarty类的话,需要写上完整路径

$smarty->display('test_template.html');

?>

然后查看结果,结果页面显示这样信息:Warning: Smarty error: unable to read resource: "test_template.html" inC:\AppServ\www\Demos\Demo2\smarty\Smarty.class.phpon line1093

无法读取到模板文件,我再看看自己写的MySmarty类,看看哪出现问题:

才发现我的路径常量定义出现问题,应该是这样的:define('SMARTY_PATH','./smarty/');

源文件少了一个'/',导致路径不完整,加上后就没问题了,这样就显示了:

璐﹀彿:fela_yman
瀵嗙爜:123456

结果出现了乱码,我分析了下原因,因为我的php文件没有规定文件编码,然后在文件开始加上

header("content-type:text/html;charset=utf-8");就没问题了,就会显示

账号:fela_yman
密码:123456

OK,一切正常,然后看看我们的模板被编译后的文件,

felayman——Smarty的简单入门笔记

Ok,这就是Smarty最基本的简单入门小程序了,分享一下自己的学习过程.我一般在学习一些开源项目的时候都是直接看例子,先明白所以然,然后再去了解之所以然,有时候因为英文水平问题也会去各种论坛看看大神们的讲解.