网页设计与后台程序解决方案-模板引擎之Smarty
1.模板引擎&核心技术
1) 初始web应用的开发模板往往都是混合式编程,PHP脚本的编写者必须既是网页设计者,又是PHP开发者,但实际情况,两种技术都精通的开发者并不多见。模板引擎的出现解决了这个问题,可以将网站的页面设计和PHP应用程序几乎完全分离,使得网页设计师更注重于网页,PHP工程师更注重于逻辑开发。
2)核心技术:只要将美工页面(不包含任何的PHP代码)指定为模板文件,并将这个模板文件中有活动的内容,定义成使用特殊"定界符"包含的"变量",然后放在模板文件中相应的位置。当用户浏览时,由PHP脚本程序打开该模板文件,并将模板文件中定义的变量进行替换。这样,模板中的特殊变量被替换为不同的动态内容时,就会输出需要的页面。
2.安装smarty
1) 到Smarty官方网站http://www.smarty.net/download.php下载最新的稳定版本.
2) 解压在之后,将libs文件夹复制到的程序主文件夹下。(我的Apache主目录为D:\webRoot)
3) 在执行的PHP脚本中,通过require()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了。
4)在主目录中分别建立templates,templates_c,cache,configs文件夹,具体含义在下一步。
3. Smarty类库的初始化
$template_dir:模板文件的指定目录
$compile_dir: 编译之后的模板文件目录
$config_dir:存放模板特殊文件目录
$left_delimiter:模板中左结束符标志 默认情况下为"{"
$right_delimiter: 模板中右结束符的标志 默认为"}"
$caching:告诉Smarty是否缓存模板的输出。
$cache_dir:缓存模板文件的指定目录
4.创建模板 在网站主目录templates下建立模板templates/test.tpl
1 <html> 2 <head> 3 <meta http-equiv="Content-type" content="text/html; charset=gb2312"> 4 <title> { $title } </title> 5 </head> 6 <body> 7 { $content } 8 </body> 9 </html>
5. 创建文件index.php
<?php include "./libs/Smarty.class.php"; //包含Smarty类库所在的文件 define('SITE_ROOT', '/usr/demo'); //声明一个常量指定非Web服务器的根目录 $smarty = new Smarty(); //创建一个Smarty类的对象$tpl $smarty->template_dir = SITE_ROOT . "/templates/"; //设置所有模板文件存放的目录 $smarty->compile_dir = SITE_ROOT . "/templates_c/"; //设置所有编译过的模板文件存放的目录 $smarty->config_dir = SITE_ROOT . "/configs/"; //设置模板中特殊配置文件存放的目录 $smarty->cache_dir = SITE_ROOT . "/cache/"; //设置存放Smarty缓存文件的目录 $smarty->caching=1; //设置开启Smarty缓存模板功能 $smarty->cache_lifetime=60*60*24; //设置模板缓存有效时间段的长度为1天 $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符 $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符 $smarty->assign("title", "测试用的网页标题"); //第四步:用assign()方法将变量置入模板里 $smarty->assign("content", "测试用的网页内容"); //也属于第四步,分配其他变量置入模板里 可以向模板中置入任何类型的变量 $smarty->display("test.tpl"); //利用Smarty的display()方法将网页输出 ?>
地址栏输入localhost/index.php 得到下图所示: