好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php-smarty模板使用教程(一)

一、  介绍

   smarty 模板技术

1、  什么是smarty

l  smarty是一个基于PHP开发的PHP模板引擎。它提供了逻辑与外在内容的分离。

2、  Smarty的特点

l  速度

l  编译型

l  缓存技术

l  插件技术

l  语句自由 if/elseif/else/endif

缺点:

l  实时更新 :实时性要求较高网站不适合用。

l  小项目 : 程序人员和美工人员是同一个人

3、  关于smarty的配置

l  http://smarty.php.net

l  /lib

l  Smarty 2.6 php4.0

l  Smarty 3.0 php5.0

进入官网,下载相应版本的smarty

下载smarty3.0  php5.0

S marty2.6 php4.0

下载之后是一个压缩文件,进行解压,解出来之后,有两个文件夹:

D emo:应用案例

L ibs:Smarty应用程序

接下来,我们把libs移动至我们的项目中,习惯性改成smarty,进入到smarty文件夹

 

 

D ebug.tpl:调试模板

Smarty.class.php:Smarty类文件

SmartyBC.class.php:在3.0中,对原来的smarty进行了一些修改,如果想使用以前的功能,需要调用这个文件

S ysplugins:系统插件目录

P lugins:自定义插件目录

 

二、  Smarty快速入门

 

 

三、  Smarty的处理过程

 

当我们第一次运行程序时,程序会读取某个模板文件,将模板文件中的字符串读取出来,并替换和输出

如果第二次读取时,还需要对模板文件进行读取,这样会增加系统开销

所以现在使用编译机制:

第一次运行某模板时,将内容编译到某个编译文件中,下次如果还是请求这个模板时,会直接调出这个编译文件进行使用

( tips:很重要的一个图:理解smarty 工作机制 )

 

 

四、  关于Smarty的路径设置

 

我们上一题中,没有设置任何路径,这时模板与程序在同一目录下是可以被认可的,但是在真正的项目,所有模板应该放到一个统一目录下管理

Smarty2.6

l  template_dir :模板目录

l  compile_dir :编译目录

l  config_dir :配置文件目录

l  cache_dir :缓存文件目录

在smarty2.6中,这几个属性是公有的

在smarty3.0中也是支持的,但它们是受保护的(protected)

 

Smarty3.0

以下四个为设置路径函数

l  setTemplateDir()

l  setCompileDir()

l  setConfigDir()

l  setCacheDir()

以下四个为获取路径函数

l  getTemplateDir()

l  getCompileDir()

l  getConfigDir()

l  getCacheDir()

 

 

在smarty2.6中支持直接对路径赋值的形式,在3.0也是支持的,建议使用3.0的用法(在不久的将来 smarty3.0肯定不会再支持直接用2.6的方法设置属性)

 

五、  分隔符

l  left_delimiter:左分隔符

l  right_delimiter :右分隔符

在smarty3.0中,这两个属性是公有的,默认值为 {},如果和项目中用到的分隔符不符,可以考虑这样来做:

如果确定所有项目文件都使用一种,可以将smarty.class.php文件中的内容进行修改

如果只是某些文件情况比较特殊,可以将当前程序的这两个属性进行修改

 

 

六、  assign 方法

表示为模板变量赋值

在模板中,可以这样使用:

{$name} :表示模板变量name

在程序中,可以这样使用:

$smarty->assign( ‘ name ’ , ’ wangcai ’ );

这样就把模板中这个标记替换成了wangcai

$smarty->assign( 'name' , 'xiaoqiang' );

查看更多关于php-smarty模板使用教程(一)的详细内容...

  阅读:40次