smarty配置,安装与示例

来源:互联网 发布:大数据的来源包括 编辑:程序博客网 时间:2024/06/05 08:09

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

 

 

Smarty优点

1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。  2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)  3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。  4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。  5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

不适合使用Smarty的地方

小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。  (PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)

 

 

 

 

 

Smarty简明教程

 

一. 安装  下载最新版本的Smarty。解压下载的文件(目录结构还蛮复杂的)。接下来演示给大家一个安装实例,看过应该会举一反三的。  (1) 在根目录(你的网站目录)下建立了新的目录learn/,再在learn/里建立一个目录smarty/。将刚才解压缩出来的目录的libs/拷贝到smarty/里,再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/, config/.  (2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目录下,代码如下:

Php代码  收藏代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01  
  2.  <html>  
  3.  <head>  
  4.  <metahttp-equiv="Content-Type" content="text/html;charset=gb2312">  
  5.  <title>Smarty</title></head>  
  6.  <body>{$hello}</body>  
  7.  </html>  

 

  新建index.php,将此文件放在learn/下:

Php代码  收藏代码
  1. <?php//引用类文件  
  2. require 'smarty/libs/Smarty.class.php';  
  3. $smarty = new Smarty;//设置各个目录的路径,这里是安装的重点  
  4. $smarty->template_dir ="smarty/templates/templates";  // 是template_dir 单数
  5. $smarty->compile_dir ="smarty/templates/templates_c";  
  6. $smarty->config_dir = "smarty/templates/config";  
  7. $smarty->cache_dir ="smarty/templates/cache";  
  8. //smarty模板有高速缓存的功能,如果这里是true的话即打开caching,但是会造成网页不立即更新的问题,当然也可以通过其他的办法解决  
  9. $smarty->caching = false;  
  10. $hello = "Hello World!";//赋值  
  11. $smarty->assign("hello",$hello);//引用模板文件  
  12. $smarty->display('index.tpl');?><br>  

 //注意,若是报有”Parse error: syntax error, unexpected T_STRING inD:\ProgramFiles\AppServ\www\learn\index.php on line 2”的错误,检查每一行的开头是否有空格,删掉后重新执行index.php。重要!!!!!!!!!!!

   (3) 执行index.php就能看到Hello World!了。

 

 

如果必须得使用绝对路径,则是因为服务器不会知道文件在第几层目录中被调用。