clearsilver编程入门简介.doc_第1页
clearsilver编程入门简介.doc_第2页
clearsilver编程入门简介.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 模板编程编程综述模板编程在MVC模型的WEB编程中占据着重要的地位,它具有将数据逻辑层次和用户界面层次分离的作用。它的使用能够让程序员能够减少了逻辑思维切换带来 的内耗,保持逻辑思维的连贯性,同时有利于代码的模块化以及层次的抽象。但是从我个人观点来看模板编程在一个项目当中不应该成为核心角色,它只是一个辅助 角色,也可以将它视作为逻辑层次所要实现的一个特性。模板编程在实现上不是实现了一门编程语言,它更像是一个组合:A) 作出一系列关于变量以及简单逻辑的宏定义,然后在模板中就使用这些宏定义来编写。B) 在逻辑层次通过API等形式来将真正的变量去取代模板中的宏定义。它的工作流程大体上是经历以下几个步骤:1) 将数据按照某种组织形式组织起来。通常是生成一个数据对象。2) 装载对应的模板,并且与数据对象相关联3)完成变量替换,生成最终显示结果PHP中常用的模板库有PEAR库中的Template类,Smarty.Perl中常用的模板库有HTML:Template,HTML:Template.等,他们适用于数据量不大,负载不是很高的应用。二 clearsilver编程概述下面介绍一种称之为clearsilver的模板编程。clearsilver实际上由c语言来提供对变量的替换,同时对各个语言(python, perl, c, java)进行了API封装。clearsilver适用于数据量很大的应用。下面按照模板编程的工作层次介绍clearsiver的工作方式:1) clearsilver引入了HDF格式的数据结构,* HDF是一种文档格式,它是采用以下的格式来表现数据结构,如key1 = val1key2 item1 = val2item2 = val3在上面中涉及到HDF路径以及值的概念如key1,key2, key2.item1,key2.item2就是HDF路径, val1, val2, val3就是分别与它们对应的值.而key2对应的就是如下一个子HDF对象:item1 = val2item2 = val3下面为Perl的几个重要的数据组织接口:$hdf = ClearSilver:HDF-new(); #初始化HDF对象$hdf-readFile(STRING:$filename); #由指定的HDF格式的文件名设置数据$hdf-setValue(STRING:$hdfpath,STRING:new_value); #设置$hdfpath的值2) 在clearsilver中采用了称之为CS的对象来将模板引入,并且与HDF数据对象相关联。如$cs = Clearsilver:CS-new(HDF:$my_hdf);完成上步以后就可以引入由字符串模板:$cs-parseString(STRING:$cs_code_string);或者引入文件模板:$cs-parseFile(STRING:$cs_filename);在这里,clearsilver的模板宏语法分为变量替换,流程控制,迭代,宏。详情参见: /docs/man_templates.hdf3) 在完成上述过程之后,可以使用$cs-render(); 来生成最终的结果。4) 除了上述的操作之外,clearsilver提供了许多便捷的高级属性的操作支持。* 在HDF对象的操作中支持获取某个HDF路径对应的数值;能够将一个子HDF对象赋值给另外一个HDF路径,简化某些赋值操作。* 可以使用CGI Tookit模块: 通过引入此命名空间,可所以在模板层次获得GET, COOKIE等数据而不需要通过逻辑层。5) clearsiverl的一个“可能的缺点”当前版本的clearsivler尚不支持在完成变量替换后此行为空行则自动删除此行的特性,它仅仅将自身的宏代码以变量置换。因为clearsilver对换行,tab等不可见字符和其他可见字符一视同仁。但是在编写模板时可以进行不换行的技巧来实现这点。附录) *) clearsiver的官方站点: /*) 获取安装clearsilver: /downloads/*) 范例#!/usr/bin/perl# Sample of clearsilver programminguse strict;use ClearSilver;# 模板,(此处的模板也可以写成模板文件,然后下面的载入模板的接口换成相对应的接口即可)my $template = TEMPLATE; Sample Of ClearSilverno key1TEMPLATE# 1) 准备数据my $hdf = ClearSilver:HDF-new();$hdf-setValue(key1, val1);$hdf-setValue(key2.item1, val2);$hdf-setValue(key2.item

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论