您的位置:首页 > 编程语言 > PHP开发

php之smarty学习二

2015-12-19 08:43 495 查看
Smarty的引入

Smarty是一个类,引入过程与普通的类没有区别

1:include,require包含此文件

2:实例化

Smarty的配置

$template_dir='templates';//模板文件所在的目录

$compile_dir='templates_c';//编译后的文件所在的目录

$config_dir='configs';//配置文件的存放目录,允许独立的配置文件存在,并且配置文件如果多了,允许单独存放在一个目录里

$cache_dir='cache';//缓存文件的存放目录

plugins_dir=array('plugins','p2','p3');//插件目录(如果自行开发插件,可能会用到)

left_delimiter='{';//标签的左分界符

right_delimiter='}';//标签的右分界符

caching=0/1;是否开启缓存

cache_lifetime=3600秒;//缓存的生命周期

Smarty的赋值

1:$smarty->assign('key',value);

发生的变化$smarty->_tpl_vars[key]=value;

2:如果assign($arr)中的第一个参数是数组,则会循环数组,把数组中的每个单元追加到_tpl_var属性上;

3:append追加赋值

如果需要把多个值,赋给同一个标签变量,不必把多个值形成数组后然后赋值,可以通过append往一个标签反复追加赋值

例如:

$smarty->append('goods','自行车');

$smarty->append('goods','火车');

此时,推论$smarty->_tpl_vars['goods']=array(自行车,火车);

如果append进去的值是数组,并且第三个参数merge参数为true,则会把数组单元逐个添加到goods数组里去。

$smarty->append('goods',array('name'=>'刘备','age'=>28),true);

此时,$smarty->_tpl_vars['goods']=array(自行车,火车,'name'=>'刘备','age'=>28);

如果是$smarty->append('goods',array('name'=>'刘备','age'=>28),false);

此时,$smarty->_tpl_vars['goods']=array(自行车,火车,array('name'=>'刘备','age'=>28));

Smarty模板中对变量的引用

变量来源:

1:assign赋值得到的变量,存储在_tpl_vars属性中

2:$smarty系统变量,对于cookie,session,get,post,$_SERVER等信息,存储在_smarty属性中,smarty会自动捕捉,并保存起来,形成系统变量,可以直接用标签来引用

3:从配置文件读取的变量,存储在_config属性中

1.1:对于assign赋值得到的变量,对于字符串,数值型,直接通过$标签名来引用

1.2:对于数组变量,如果键是字符串,则用$标签名.键。如果键是数字,这用$标签名[键]。

1.3:对于对象方式,用$标签名->属性名来引用对象的属性值,用$标签名->方法()来调用对象的方法的返回值

2.1:smarty中系统的变量,以$smarty开头,例:$smarty.now,被解析成time();$smarty.get.key被解析成$_GET[key]。$smarty.const.常量名被解析成echo 常量名.

3.1:从配置文件得到的变量

配置文件可以用来存储常用且很少变的数据,比如网站名,备案号,通过配置文件得到这些信息,不必去读取数据库,可以省去一些数据库的开销

配置文件的写法:

配置项 1=值 1

配置项 2=值 2

配置文件的载入:

{config_load file="xxx.conf"},在模板里的最开始地方引入

配置文件中变量的引用:

$smarty.config.配置项

或者 #配置项#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php smarty