TPL + Json + PHP = ?
来源:互联网 发布:vx网络上什么意思 编辑:程序博客网 时间:2024/05/01 14:53
TPL + Json + PHP = TPL + JSPT
这里,JSPT 是我发明的名词。它代表了 Json PHP Transformations = Json (Data) + PHP (Transformation Template)。为什么有这个词,是因为这个世界上还有一个著名的词:XSLT = XSL Transformations = XML (Data) + XSL (Transformation Template)。
我介绍 TPL 时,曾经把文本处理分为I和O。其中I是Parser,即将文本Parse为内存DOM结构,其中O是Formmatter,即将内存DOM结构转换为文本。其实还有第三个角色,就是Data。这里补充说明下:
TPL: 是I(Parser)模块。它将文本转为DOM。
Json/XML/etc: 它们的定位是,作为DOM的文本规范。我称之为Data。其实它们仍然是文本,需要Parser和Formmatter来处理它。但是它们的特殊之处在于 通常它们被看作为程序之间的交互规范,是DOM的Presentation(或者Persistence)。
PHP/XSL/etc: 是O(Formatter)模块。它们将DOM转为文本。通常O模块还有另一个名字,叫模板引擎(Template Engine)。这个世界上有太多的模板引擎。如:
- http://www.djangoproject.com/documentation/templates/ (Python,有Erlang版: http://code.google.com/p/erlydtl/)
- http://www.stringtemplate.org/ (Java,有Erlang版: http://code.google.com/p/sgte/)
- http://smarty.php.net/ (PHP)
- http://yarivsblog.com/articles/2006/10/21/erltl-0-9-1/ (Erlang)
但我个人更倾向于认为,PHP才是世上最棒的模板引擎 ── 这根本就是这个语言的定位。任何额外的封装其实是画蛇添足。
当然,对TPL而言,它并不排斥任何组合。TPL + XSLT,还是 TPL + JSPT (Json + PHP),还是其他,你来决定。
TPL + JSPT (Json + PHP)如何工作?
TPL + JSPT可将任意两种文本格式进行相互转换。假设我们要将 TextA 转为 TextB。那么实际转换的流程是:
- TextA 由 TPL 分析,Parse为内存中的DOM。
- 内存中的DOM,由一个JsonFormmatter转为Json文本。
- Json文本由PHP的JsonParser模块转为内存中的DOM。
- 最后,使用PHP强悍的Formmatter能力,转换为TextB格式。
前两步由TPL库提供。后两步由PHP完成。TPL与PHP的交互通过Json文本。
一个TPL + JSPT的样例:prjconv
prjconv是一个工程转换器。它可以将各种源代码的工程格式彼此进行转换。
代码参见:http://winx.googlecode.com/svn/trunk/tpl/JSPT/
- TPL + Json + PHP = ?
- TPL + Json + PHP = TPL + JSPT
- php请求找不到tpl文件
- TPL
- Drupal模板变量 – page.tpl.php
- Drupal 7中 page.tpl.php 的可用变量
- drupal7 html.tpl.php 中用到的变量
- drupal7 page.tpl.php文件中可用的默认变量
- drupal7 region.tpl.php 文件 及其 所用到的变量
- drupal7 node.tpl.php文件 及其所用到的变量
- drupal7 field.tpl.php 文件及其用到的变量
- drupal7 block.tpl.php文件及其用到的变量
- Drupal 7中 page.tpl.php 的可用变量
- 关于让node.tpl.php(节点内容页面…
- php自己创建TPL模板引擎之初学习
- php自己创建TPL模板引擎之初学习
- TPL脚本语言
- TPL dataflow
- Fedora一些基本的命令及技巧汇总
- Fedora一些基本的命令及技巧汇总
- Asp.net 备份、还原Ms SQLServer及压缩Access数据库
- 股票心得 1
- Asp.net(C#)对文件操作的方法(读取,删除,批量拷贝,删除...)
- TPL + Json + PHP = ?
- Java中国象棋博弈程序探秘[4]——生成有效着法
- Eclipse与tomcat6实现远程调试
- 就要搜 万能搜索
- Java中国象棋博弈程序探秘[5]——搜索算法
- 怎么来培养自己的OO思想
- MTIR网站多线程实时重载技术
- 序列化和反序列化
- ASP.NET2.0中给GridView动态添加模板列并自动绑定数据