




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Smarty笔记day011. 什么是模板引擎模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。模板引擎不属于特定技术领域,它是跨领域跨平台的概念。在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。2. 原理:模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换一下便生成了最终需要的业务数据(比如网页)。置换型模板引擎实现简单,但
2、其效率底下,无法满足高负载的应用需求(比如有海量访问的网站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等。Smarty模版引擎属于“编译型”模板引擎。3. 用途:模板引擎可以让(网站)程序实现界面与数据分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。我们司空见惯的模板安装卸载等概念,基本上都和模板引擎有着千丝万缕的联系。模板引擎不只是可以让你实现代码分离(业务逻辑代码和用户界面代码),也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享(代码重用),甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能。 4. 什么是sma
3、rty?Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,使php程序员只专注于php代码的编写,网页美工只专注于网页的美化。传统的php文件,没有模版引擎时出现的问题?html中php代码比重越来越大,php与html混编在一起。页面的数量越来越多程序设计与美工设计分工不明确不便于以后的维护和扩展。5.Smarty模板的优点如下:速度:相对于其他模板引擎技术而言。编译型:采用Smarty编写的程序在运行时要编译(组合)成一个非模板技术的PHP文件,使后续的调用速度更快。缓存技术:Smarty提供了一种可选择使用的缓存技术,它可以将用户最终看到HTML文件
4、缓存成一个静态的HTML页。插件技术:Smarty采用面向对象实现,可以非常方面的定义一些插件。强大的表现逻辑:PHP负责后台,Smarty负责前端。模板继承:这使得模板更直观、更有效和易管理。6. 初始化Smarty类库的默认设置require ROOT.'libs/Smarty.class.php' /加载Smarty类文件 $smarty = new Smarty();/实例化Smarty类的对象$smarty /* 推荐用Smarty以上版本方式设置默认路径,成功后返回$smart对象本身,可连贯操作 */$smarty ->setTemplateDir(ROOT
5、.'templates/')/设置所有模板文件存放的目录/ ->addTemplateDir(ROOT.'templates2/')/可以添加多个模板目录(前后台各一个)->setCompileDir(ROOT.'templates_c/')/设置所有编译过的模板文件存放的目录 ->setPluginsDir(ROOT.'plugins/')/设置为模板扩充插件存放的目录->setCacheDir(ROOT.'cache/')/设置缓存文件存放的目录->setConfigDir(ROO
6、T.'configs');/设置模板配置文件存放的目录 $smarty->caching = false;/设置Smarty缓存开关功能$smarty->cache_lifetime = 60*60*24;/设置模板缓存有效时间段的长度为1天$smarty->left_delimiter = '<'/设置模板语言中的左结束符$smarty->right_delimiter = '>'/设置模板语言中的右结束符7. 第一个Smarty的简单示例/* 第一步:加载自定义的Smarty初使化文件 */require
7、"init.inc.php" /* 第二步:用assign()方法将变量置入模板里 */$smarty->assign("title", "测试用的网页标题");/* 也属于第二步,分配其他变量置入模板里,可以是任何类型变量 */$smarty->assign("content", "测试用的网页内容");/* 利用Smarty对象中的display()方法将网页输出 */$smarty->display("test.html"); 8. 模板的初始化信息$
8、mysmarty->template_dir="./templates"/指定模板目录$mysmarty->compile_dir="./templates_c"/指定编译目录 (自动生成的)$mysmarty->config_dir="./configs"/指定配置目录$mysmarty->cache_dir="./cache"/模板静态缓存目录 (自动生成的)$mysmarty->caching=false;/是否开启静态缓存目录$mysmarty->cache_lifeti
9、me=-1;/静态缓存生存时间(-1代表的是不过期)$mysmarty->left_delimiter="<"/左定界符$mysmarty->right_delimiter=">"/右定界符9. 加载配置文件config_load file="my.ini"config_load file="smarty.conf" section="$lg"/section配置文件中待加载节块的名称10. 忽略smarty解析literal/literal11. 分配变量Assign(
10、“$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");/索引数组$mysma
11、rty->assign("a1",array("name"=>"dahu","age"=>25);/关联数组$mysmarty->assign("ob",new Person();/对象class Person/成员属性public $name="小翠"public $age=25;/成员方法public function info()return $this->name.":".$this->age;14. Smart
12、y的注释*.* Smarty笔记day021. Smarty的增删改查<?php/将来框架的控制层的写法/导入各种文件信息require("./model/Model.class.php"); require("init.php"); require("/configs/config.php"); /Model类的实例化$mod=new Model("sutdent");switch($_GET'a')/执行添加case "insert":$m=$mod->inser
13、t();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(&q
14、uot;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(
15、"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);/加载模板$mysma
16、rty->display("stu/edit.html");break;/浏览case "index":default:$list=$mod->select();/分配变量$mysmarty->assign("list",$list);/加载模板$mysmarty->display("stu/index.html");break; ?>2.Smarty中的引入方式include file=”跳转页面”3. 如何在增删改查中拿到原有的数据在value当中用$数据.id4. 在Smarty
17、中进行value的值的判断可以用if $数据.sex=mchecked/if5. 在Smarty中遍历数据的方式foreach $数据 as $v<td>$v.id</td>,</td>$</td>等等/使用遍历赋值的时候返回的数据的$v来定义数据6. Smarty中id跳转页面的方法<a href=”页面.php?a=del(删除ID)&id=$v(数据).id”>删除</><a href=”页面.php?a=update(添加ID)&id$v(数据).id”>修改</>
18、;7. 怎么获取保留变量?/获取当前时间戳$smarty.now;/获取本地化时间$smarty.now|date_format:%Y-%m-%d %:H:%M:%S;/获取常量$smarty.const.PI/捕捉信息$smarty.capture.mycapture获取配置文件信息$获取模板名$smarty.template获取模板目录$smarty.current_dir获取版本号$smarty.version获取左右定界符 $smarty.ldelim,$smarty.rdelim Smarty笔记day03一.内置函数/var 和 append(追
19、加数组变量)append var =”数组” value=”值” index=”索引”/可以直接在模块中赋值/assign给变量赋值assign var =”name” value=”值”/赋值$name/取值/call函数调用function name=”fun”.函数内容./functioncall “fun”/调用函数/debug调试(错误调试)debug/只显示分配的变量值,不显示模板1.For循环遍历for $i to 10$i/for/步长为1的简单循环2.for遍历偶数for $j=0 to 10 step 2$j/for3.Foreach遍历foreach $a as $v$v
20、foreachelse/代替数组的遍历/foreach4.section遍历数组section name=”i” loop=”$a”$ai/section5.Section遍历二维数组section name=”sid” loop=”$list”$/section$ctotal/获取多少数据$smarty.section.sid.iteration/是否已被缓存$smarty.section.total/获取数据$sectionelse/判断条件2. 自定义函数1.registerPlugin(“函数function”,”函数名”,”系统函数”);注册插件/将系统的time函数注册到新的函数名.模板当中使用time()/获取系统事件函数mytime/注册函数2.registerPlugin(“函数名”,”新函数名”,”自定义函数名”);/将自定义的fun函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿石供货标准合同协议
- 租房居间合同失效协议
- 租房设施损坏合同协议
- 鞋底三方协议合同
- 用水用电合同协议书范本
- 4六分成协议合同
- 展会保证金合同协议
- 土石方运输施工合同协议
- 私人房子过户合同协议
- 租赁场地做宾馆合同协议
- 工程师评审代办合同协议
- 小班健康活动:我会吃鱼
- 专利代理师考试题库含答案2024
- DB12 T1230-2023 政务信息资源共享 总体框架
- 管道拆除专项施工方案
- 广西壮族自治区马山县实验高中-双休背后:从“要我学”到“我要学”的转变-高三家长会【课件】
- GB/Z 27021.13-2025合格评定管理体系审核认证机构要求第13部分:合规管理体系审核与认证能力要求
- 湖南省长沙市四大名校2024-2025学年高三2月月考语文试题(原卷版+解析版)
- 《政府采购管理研究的国内外文献综述》5500字
- 糖尿病护理查房提出问题
- 2024年国网浙江省电力有限公司招聘考试真题
评论
0/150
提交评论