网页设计与后台程序解决方案-模板引擎之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 得到下图所示:

  

 

posted @ 2013-04-12 17:22  追风筝的人  Views(310)  Comments(0Edit  收藏  举报