felayman——Smarty的简单入门笔记
1.先看看Smarty的目录结构,我这里使用的是3.1.6,我是按照官方给的源码demo的要求,新建了几个文件夹
2.然后在项目目录下新建一个引用Smarty的配置文件我这里就使用了smarty.config.php,如下图
我这里是使用自己的类继承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,一切正常,然后看看我们的模板被编译后的文件,
Ok,这就是Smarty最基本的简单入门小程序了,分享一下自己的学习过程.我一般在学习一些开源项目的时候都是直接看例子,先明白所以然,然后再去了解之所以然,有时候因为英文水平问题也会去各种论坛看看大神们的讲解.