PHP高级课 Smarty模板笔记整理.docx

上传人:b****8 文档编号:12794583 上传时间:2023-06-08 格式:DOCX 页数:12 大小:19.13KB
下载 相关 举报
PHP高级课 Smarty模板笔记整理.docx_第1页
第1页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第2页
第2页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第3页
第3页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第4页
第4页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第5页
第5页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第6页
第6页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第7页
第7页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第8页
第8页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第9页
第9页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第10页
第10页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第11页
第11页 / 共12页
PHP高级课 Smarty模板笔记整理.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PHP高级课 Smarty模板笔记整理.docx

《PHP高级课 Smarty模板笔记整理.docx》由会员分享,可在线阅读,更多相关《PHP高级课 Smarty模板笔记整理.docx(12页珍藏版)》请在冰点文库上搜索。

PHP高级课 Smarty模板笔记整理.docx

PHP高级课Smarty模板笔记整理

Smarty笔记day01

1.什么是模板引擎

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。

模板引擎不属于特定技术领域,它是跨领域跨平台的概念。

在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。

2.原理:

模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换一下便生成了最终需要的业务数据(比如网页)。

置换型模板引擎实现简单,但其效率底下,无法满足高负载的应用需求(比如有海量访问的网站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等。

Smarty模版引擎属于“编译型”模板引擎。

3.用途:

模板引擎可以让(网站)程序实现界面与数据分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。

我们司空见惯的模板安装卸载等概念,基本上都和模板引擎有着千丝万缕的联系。

模板引擎不只是可以让你实现代码分离(业务逻辑代码和用户界面代码),也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享(代码重用),甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能。

4.什么是smarty?

Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,使php程序员只专注于php代码的编写,网页美工只专注于网页的美化。

传统的php文件,没有模版引擎时出现的问题?

html中php代码比重越来越大,php与html混编在一起。

页面的数量越来越多

程序设计与美工设计分工不明确

不便于以后的维护和扩展。

5.Smarty模板的优点如下:

速度:

相对于其他模板引擎技术而言。

编译型:

采用Smarty编写的程序在运行时要编译(组合)成一个非模板技术的PHP文件,使后续的调用速度更快。

缓存技术:

Smarty提供了一种可选择使用的缓存技术,它可以将用户最终看到HTML文件缓存成一个静态的HTML页。

插件技术:

Smarty采用面向对象实现,可以非常方面的定义一些插件。

强大的表现逻辑:

PHP负责后台,Smarty负责前端。

模板继承:

这使得模板更直观、更有效和易管理。

6.初始化Smarty类库的默认设置

requireROOT.'libs/Smarty.class.php';//加载Smarty类文件

$smarty=newSmarty();//实例化Smarty类的对象$smarty

/*推荐用Smarty以上版本方式设置默认路径,成功后返回$smart对象本身,可连贯操作*/

$smarty->setTemplateDir(ROOT.'templates/')//设置所有模板文件存放的目录

//->addTemplateDir(ROOT.'templates2/')//可以添加多个模板目录(前后台各一个)

->setCompileDir(ROOT.'templates_c/')//设置所有编译过的模板文件存放的目录

->setPluginsDir(ROOT.'plugins/')//设置为模板扩充插件存放的目录

->setCacheDir(ROOT.'cache/')//设置缓存文件存放的目录

->setConfigDir(ROOT.'configs');//设置模板配置文件存放的目录

$smarty->caching=false;//设置Smarty缓存开关功能

$smarty->cache_lifetime=60*60*24;//设置模板缓存有效时间段的长度为1天

$smarty->left_delimiter='<{';//设置模板语言中的左结束符

$smarty->right_delimiter='}>';//设置模板语言中的右结束符

7.第一个Smarty的简单示例

/*第一步:

加载自定义的Smarty初使化文件*/

require"init.inc.php";

/*第二步:

用assign()方法将变量置入模板里*/

$smarty->assign("title","测试用的网页标题");

/*也属于第二步,分配其他变量置入模板里,可以是任何类型变量*/

$smarty->assign("content","测试用的网页内容");

/*利用Smarty对象中的display()方法将网页输出*/

$smarty->display("test.html");

8.模板的初始化信息

$mysmarty->template_dir="./templates";//指定模板目录

$mysmarty->compile_dir="./templates_c";//指定编译目录(自动生成的)

$mysmarty->config_dir="./configs";//指定配置目录

$mysmarty->cache_dir="./cache";//模板静态缓存目录(自动生成的)

$mysmarty->caching=false;//是否开启静态缓存目录

$mysmarty->cache_lifetime=-1;//静态缓存生存时间(-1代表的是不过期)

$mysmarty->left_delimiter="<{";//左定界符

$mysmarty->right_delimiter="}>";//右定界符

9.加载配置文件

{config_loadfile="my.ini"}

{config_loadfile="smarty.conf"section="{$lg}"}//section配置文件中待加载节块的名称

10.忽略smarty解析

{literal}{/literal}

11.分配变量

Assign(“$key”,”$value”);

12.加载模块

Display(“1.html”)//1.html是需要解析的页面

13.基本语法

$mysmarty->assign("id","18");//int整型

$mysmarty->assign("str","laoyao");//字符串型

$mysmarty->assign("a",array("xiaoguang","xiaohei","xiaoyao"));//索引数组

$mysmarty->assign("a1",array("name"=>"dahu","age"=>25));//关联数组

$mysmarty->assign("ob",newPerson());//对象

classPerson{

//成员属性

public$name="小翠";

public$age=25;

//成员方法

publicfunctioninfo(){

return$this->name.":

".$this->age;

}

}

14.Smarty的注释

{*.......*}

Smarty笔记day02

1.Smarty的增删改查

php

//将来框架的控制层的写法

//导入各种文件信息

require("./model/Model.class.php");

require("init.php");

require("/configs/config.php");

//Model类的实例化

$mod=newModel("sutdent");

switch($_GET['a']){

//执行添加

case"insert":

$m=$mod->insert();

if($m>0){

//分配变量

$mysmarty->assign("info","添加成功");

}else{

$mysmarty->assign("info","添加失败");

}

//加载模板

$mysmarty->display("stu/info.html");

break;

//执行删除

case"del":

$m=$mod->delete($_GET['id']);

//分配变量

if($m>0){

$mysmarty->assign("info","删除成功");

}else{

$mysmarty->assign("info","删除失败");

}

//加载模板

$mysmarty->display("stu/info.html");

break;

//执行修改

case"update":

$m=$mod->update();

//分配变量

if($m>0){

$mysmarty->assign("info","修改成功");

}else{

$mysmarty->assign("info","修改失败");

}

//加载模板

$mysmarty->display("stu/info.html");

break;

//加载添加页面

case"add":

$mysmarty->display("stu/add.html");

break;

//加载修改页面

case"edit":

$ob=$mod->find($_GET['id']);

//分配变量

$mysmarty->assign("ob",$ob);

//加载模板

$mysmarty->display("stu/edit.html");

break;

//浏览

case"index":

default:

$list=$mod->select();

//分配变量

$mysmarty->assign("list",$list);

//加载模板

$mysmarty->display("stu/index.html");

break;

}

?

>

2.Smarty中的引入方式

{includefile=”跳转页面”}

3.如何在增删改查中拿到原有的数据

在value当中用{$数据.id}

4.在Smarty中进行value的值的判断

可以用{if$数据.sex==m}checked{/if}

5.在Smarty中遍历数据的方式

{foreach$数据as$v}

{$v.id},{$v.name}等等//使用遍历赋值的时候返回的数据的$v来定义数据

6.Smarty中id跳转页面的方法

a=del(删除ID)&id={$v(数据).id}”>删除

a=update(添加ID)&id{$v(数据).id}”>修改

7.怎么获取保留变量?

//获取当前时间戳

{$smarty.now};

//获取本地化时间

{$smarty.now|date_format:

‘%Y-%m-%d%:

H:

%M:

%S’};

//获取常量

{$smarty.const.PI}

//捕捉信息

{$smarty.capture.mycapture}

获取配置文件信息

{$smarty.config.name}

获取模板名

{$smarty.template}

获取模板目录

{$smarty.current_dir}

获取版本号

{$smarty.version}

获取左右定界符

{$smarty.ldelim},{$smarty.rdelim}

Smarty笔记day03

一.内置函数

//var和append(追加数组变量)

{appendvar=”数组”value=”值”index=”索引”}//可以直接在模块中赋值

//assign给变量赋值

{assignvar=”name”value=”值”}//赋值

{$name}//取值

//call函数调用

{functionname=”fun”}

.....函数内容....

{/function}

{call“fun”}//调用函数

//debug调试(错误调试)

{debug}//只显示分配的变量值,不显示模板

1.For循环遍历

{for$ito10}

{$i}

{/for}//步长为1的简单循环

2.for遍历偶数

{for$j=0to10step2}

{$j}

{/for}

3.Foreach遍历

{foreach$aas$v}

{$v}

{foreachelse}//代替数组的遍历

{/foreach}

4.section遍历数组

{sectionname=”i”loop=”$a”}

{$a[i]}

{/section}

5.Section遍历二维数组

{sectionname=”sid”loop=”$list”}

{$list[sid].name}

{/section}

{$c@total}//获取多少数据

{$smarty.section.sid.iteration}//是否已被缓存

{$smarty.section.total}//获取数据

{$sectionelse}//判断条件

2.自定义函数

1.registerPlugin(“函数function”,”函数名”,”系统函数”);注册插件//将系统的time函数注册到新的函数名.模板当中使用

{time()}//获取系统事件函数

{mytime}//注册函数

2.registerPlugin(“函数名”,”新函数名”,”自定义函数名”);//将自定义的fun函数起个别名mytable名字注册到模板里面使用

Functionfun(){

Return111;

}

3.自定义表格数组

$list=array(

Array(“name”=>”ccc”,”age”=>19),

Array(“name”=>”dddd”,”age”=>29)

);

//分配变量

$bankuai->assign(“list”,$list);

Functionfun($dd){

Var_dump(“$dd”);

//遍历

Foreach($dd[‘name’]as$v){

$str.=””;

$str.=”{$v.[‘name’]}”;

$str.=”{$v.[‘age]}”;

$str=””

Return$str;

}

}

//注册fun

$bankuai->registerPlugin(“function”,”mytime”,”fun”);

//模块页面调用

{自定义函数名name=”$list”}

3.模板继承

Block:

块模板

Extends:

继承

1.继承模板的写法:

{extendsfile=”页面”}

{blockname=”body”}

{foreach$listas$v}

{$v.name}{$v.age}

{/foreach}

{/block}

父模板的继承

{blockname=”body”}{/block}

四.静态缓存

$bankuai->isCached(“页面”);//判断是否开启静态缓存

$bankuai->clearCache(“页面”)//清除缓存

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2