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)。这个世界上有太多的模板引擎。如:

但我个人更倾向于认为,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/

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐