php面向对象--PHP模板 ppt

来源:互联网 发布:mac 双系统 删除 编辑:程序博客网 时间:2024/05/01 13:01
模板是可复用代码的衍生概念。
模板使页面与代码分离。
模板方便制作不同语言版本。

模板提高开发速度和性能。

发展历史
¨内嵌PHP代码
¨分离通用代码
¨解释型模板体系
¨编译型模板体系
¨缓存模板体系



两种模板引擎
¨需程序处理的模版引擎程序开发者必须要负责变量的呈现逻辑,也就是说他必须把变量的内容在输出到模版前先处理好,才能做assign的工作。

完全由模版本身自行决定的模版引擎



Smarty优点
¨速度快
¨编译行
¨缓存技术:Smarty可以缓存成一个静态的HTML页
¨插件技术:实际上就是可以编辑‘自定义函数’和自定义
‘变量’
¨模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。



Smarty不适合
¨实时刷新的内容
¨小型网站




Smarty安装
¨拷贝libs
¨/libs Smarty的功能类目录
/tempalates 模板文件目录
/templates_c 模板缓存文件目录
/configs 配置文件目录
/cache 缓存文件目录


模板文件
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html;
charset=gb2312” />
<title> {$title} </title>
</head>
<body>
{$content}
</body>
</html>

 PHP文件

<?php
include_once(“libs/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //创建smarty对象
$smarty->template_dir = "./templates"; //设置模板目录
$smarty->compile_dir = "./templates_c"; //设置编译目录
$smarty->left_delimiter = "{"; //定义左边界符
$smarty->right_delimiter = "}"; //定义右边界符
$smarty->assign(“title”, “Hello”); //进行模板变量替换
$smarty->assign(“content”, “Hello, World”); //进行模板变量替换
$smarty->display("index.tpl"); //编译并显示
?>



其他设置
¨$smarty->cache_dir = "cache";
¨$smarty->cache_lifetime = 60 * 60 * 24;
¨$smarty->caching = 1;


基本语法
¨注释: {* 注释内容*}
¨变量: {$变量名}
¨索引数组: {$数组名[索引]}
¨关联数组: {$数组名.元素名}
¨对象: {$对象名->属性名}
¨函数: {函数名称[ 参数名1=值1[ 参数名2=值2]]}



从配置文件引用的变量
¨配置文件名为: *.conf
¨在模板中引入:{config_load file="配置文件
名.conf"}
¨在模板中的变量标签:{#变量名#}或
{$smarty.config.变量名}


变量调节器
¨{$变量名|调节器名} //用于变量
¨{“字符串”|调节器名} //用于字符串
¨{函数名|调节器名函数的参数名=值} //用于函

¨{$变量名|调节器名1[|调节器名2|...]} //使用多
个调节器




条件
¨条件表达式与PHP中相同即可
¨{if 条件表达式1}
内容1
[{elseif 条件表达式2}
内容2
{else}
内容3]
{/if}





输出内容
¨'{'字符: {ldelim} }'字符: {rdelim}
¨{literal}{/literal} 里面的文本内容将不会被模板
引擎解析,原样输出
¨{php}php语句;{/php}


输出内容
¨'{'字符: {ldelim} }'字符: {rdelim}
¨{literal}{/literal} 里面的文本内容将不会被模板
引擎解析,原样输出
¨{php}php语句;{/php}



循环
¨{foreach from=$数组名item=当前元素的变量
名称[ key=当前元素的键名] }
循环体...
{$当前元素的变量名称}
{foreachelse}
循环不执行时语句
{/foreach}


输出内容
¨'{'字符: {ldelim} }'字符: {rdelim}
¨{literal}{/literal} 里面的文本内容将不会被模板
引擎解析,原样输出
¨{php}php语句;{/php}



{section name = name loop =
$varName[ start = $start step = $step max =
$max show = true]}
¨name: section的名称,不用加$







输出内容
¨'{'字符: {ldelim} }'字符: {rdelim}
¨{literal}{/literal} 里面的文本内容将不会被模板
引擎解析,原样输出
¨{php}php语句;{/php}


原创粉丝点击