Smarty 介绍与配置

 Smarty的介绍


Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人。例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现。在Smarty的程序里,这些被忽略了。模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等)。有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变)。这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。因此,程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑。

现在简短的说一下什么是smarty不做的。smarty不尝试将逻辑完全和模板分开。如果逻辑程序严格的用于页面表现,那么它在模板里不会出现问题。有个建议:让应用程序逻辑远离模板, 页面表现逻辑远离应用程序逻辑。这将在以后使内容更容易管理,程序更容易升级。 

Smarty的特点之一是"模板编译"。意思是Smarty读取模板文件然后用他们创建php脚本。这些脚本创建以后将被执行。因此并没有花费模板文件的语法解析,同时每个模板可以享受到诸如Zend加速器(http://www.zend.com) 或者PHP加速器(http://www.php-accelerator.co.uk)。这样的php编译器高速缓存解决方案。 

Smaty的一些特点:

  • 非常非常的快!

  • 用php分析器干这个苦差事是有效的

  • 不需要多余的模板语法解析,仅仅是编译一次

  • 仅对修改过的模板文件进行重新编译

  • 可以编辑'自定义函数'和自定义'变量',因此这种模板语言完全可以扩展

  • 可以自行设置模板定界符,所以你可以使用{}, {{}}, <!--{}-->, 等等

  • 诸如 if/elseif/else/endif 语句可以被传递到php语法解析器,所以 {if ...} 表达式是简单的或者是复合的,随你喜欢啦

  • 如果允许的话,section之间可以无限嵌套

  • 引擎是可以定制的.可以内嵌php代码到你的模板文件中,虽然这可能并不需要(不推荐)

  • 内建缓存支持

  • 独立模板文件

  • 可自定义缓存处理函数

  • 插件体系结构






Smarty的配置

 

     适用平台: Windows系统+IIS/APACHE+PHP4/PHP5

 

     在开始之前,首先得确定你的web服务器和PHP已经配置完毕并工作正常。

1、下载Smarty包

     可以从官方站点下载:http://smarty.php.net

   

2、解压缩Smarty包并找到合适的位置存放.解压之后文件夹名可能是Smarty.x.x.x,把它修改成smarty(此处只为将来使用方便起见,并非必须),然后将含有Smarty文件的文件夹拷贝到某一个目录下(建议不要放在你的网站目录下,这样别人可以通过路径访问到这些文件,如果非要放在网站目录下,那最好目录的名字起的生僻一些。这些文件即使被别人访问到,也未必造成安全问题,但是一切都为了以防万一)。

    在文章的下面内容中,我们都是假设你的文件放在了d:\smarty下。

 

3、找到你的php.ini配置文件(可以通过运行phpinfo()查看此文件路径,但一般都放在系统目录下)修改php.ini的include_path选项,把smarty的库文件路径加上,比如:

    include_path= ".;d:\smarty\libs"

    提醒一下,php.ini中一共有两处include_path,一处是Unix下使用的,一处是windows下使用的,要修改windows下使用的:

-------------------------------------------------------------

; Windows: "\path1;\path2"

include_path = ".;c:\php\includes;D:\PHP\Smarty\libs"

--------------------------------------------------------------

4、重新启动IIS/APACHE,重新启动的目的是使刚才的修改生效。

重新启动的方法很简单,APACHE直接restart即可。对于IIS,可以用net stop iiadmin命令关闭iis,然后用net start w3svc命令启动,就完成了重新启动。如果实在不会重启,就干脆重新启动计算机,这样最省事。

设置之后,在php文件中可以用include("Smarty.class.php");语句直接调用。

   

5、在你的网站目录下创建一个文件夹,名字任意,假设叫MySmarty:

    然后再在这个MySmarty目录下创建2个文件夹,templates和configs。

    创建完成之后如下:

    (你的网站目录)/MySmarty/templates     (这个目录用来存放模版)

    (你的网站目录)/MySmarty/configs   (这个目录用来存放一些配置信息)

 

6、在MySmarty目录下再创建两个文件夹,名字分别叫:smarty_cache和smarty_templates_c。为什么刚才不一起创建呢?因为这个步骤在原来的官方资料中没有,而我在配置过程中发现,如果没有这两个文件夹,smarty将无法工作,不知道是不是官方资料的smarty版本和目前最新的版本有出入的原因。但是只要配置这两个目录,Smarty便可以顺利工作。因此建议进行配置。

 

7、这时候你别忘了把我们上面从一开始到现在创建的四个文件夹的权限设置好。当然还包括存放smarty的文件夹d:\smarty的权限,因为有的NTFS格式的系统有严格的权限规定,你的目录创建之后还得有足够的权限才能让web程序访问。一般来说win2000和win2003下采用NTFS分区格式的系统需要做这样的设定,具体方法是在文件夹上点击右键,在“属性”中打开“安全”标签,在里面列出了可以访问这个目录的用户列表,如果没有web访问权限,则需要添加,把Internet来宾帐户和启动IIS进程帐户两个帐户都添加上即可。如果觉得麻烦,可以直接将Everyone用户组添加上,允许任何用户访问。

 

8、这时候安装工作基本完成,可以进行第一个简单例子的测试:

    在你的网站目录下建立 index.php文件,并且在(网站目录)/smarty/templates/下建立index.tpl文件,分别输入以下代码

   index.php

<?php

   //载入Smarty库

  include("Smarty.class.php");

  

   $smarty = newSmarty;

 

   //下面的(你的网站目录)用绝对路径,比如d:/intepub/wwwroot

  $smarty->template_dir = 'D:/WorkSpace/PHP/MySmarty/templates';

  $smarty->config_dir = 'D:/WorkSpace/PHP/MySmarty/config';

  $smarty->cache_dir = 'D:/WorkSpace/PHP/MySmarty/smarty_cache';

  $smarty->compile_dir ='D:/WorkSpace/PHP/MySmarty/smarty_templates_c';

   //上面四行为使用Smarty前的必要参数配置

 

  $smarty->assign('name','安装Smarty');

  $smarty->display('index.tpl');

?>

 

   index.tpl

   <html>

   <body>

   你好,{$name}!

   </body>

   </html>

9、现在终于可以观看以下自己的杰作了。运行index.php(当然是在你的web服务器上运行,和运行普通php文件完全一样。)

  http://localhost/index.php

   这时候如果看到下面的输出结果,说明你安装成功了~~~是不是很简单呢?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值