日期:2014-04-20  浏览次数:20524 次

企业级PHP开发,我们需要考虑:
[list:6ec4bae001]• 质量 (程序必须拥有一致性和稳定性) 
• 功能 (程序必须满足付费用户的所有功能需求) 
• 性能 (程序应该在一个可接受的严格规定的时间内处理用户请求) 
• 扩展性 (倘若硬件支持,程序使用用户必须有数量级的提升) 
• 持续发展 (不能超过被期望的开发预算) 
• 准时性 (程序必须在规定的时间交付) 
• 维护/支持费用 () 
• 可用性
• ......
• 等等[/list:u:6ec4bae001]


简短说明:
主要翻译http://www.smartphp.net/的SmartTemplate部分的内容,随着认识的逐次加深,我将适当调整翻译的结果。
如果你有任何建议,请告诉我,谢谢!

为什么推荐他:
[list:6ec4bae001]
• 轻巧
• 简单
• 功能确实不错
[/list:u:6ec4bae001]

现在下载:
[list:6ec4bae001]
smarttemplate_1_0_2.zip(内含演示程序)
smarttemplate_extension_examples.zip(扩展演示)
[/list:u:6ec4bae001]



基本方法:
[list:6ec4bae001]   • assign
   • append
   • output
   • result
   • use_cache
   • debug[/list:u:6ec4bae001]

模板流程控制:
[list:6ec4bae001]   • if
   • else
   • elseif
   • begin ... end(块结构)
[/list:u:6ec4bae001]

 HonestQiao 回复于:2005-08-15 14:43:39 [color=darkblue:ba7ae02416][size=24:ba7ae02416]SmartTemplate 简介[/size:ba7ae02416][/color:ba7ae02416]
SmartTemplate是一个支持大型WEB应用程序的模板引擎.
SmartTemplate有什么特色? 
普通模板引擎工作方式: 你的PHP脚本指定一个HTML模板,指定动态内容并显示。模板分析器使用指派的内容替换模板内所有的占位符,然后显示给用户. 这意味着,每次你要输出一些内容,程序都要花上好多时间去进行字符串的处理和正则表达式的工作。
SmartTemplate 的工作方式类似模板编译,他把模板转换为可执行的PHP脚本,并且保存起来以备以后重用。当一个新的模板在第一次被使用时,The first time a new template is processed, 模板内所有的占位符被替换为简单的可输出指定内容的PHP代码元素。据个例子,模板片断 [b:ba7ae02416]<H3>{TITLE}</H3>[/b:ba7ae02416],将被转换为 [b:ba7ae02416]<H3><?php echo $TITLE; ?></H3>[/b:ba7ae02416]. 如果你指定内容给正确的变量, 将再也不需要进行模板分析了. 程序要做得仅仅是自己包含并执行便以后的模板. 这通常会戏剧性的减少模板引擎的运行时间.

SmartTemplate 支持:
[list:ba7ae02416] • 普通变量替换 (字符串,等等)
 • 重复的内容块 (嵌套数组/ BEGIN..END)
 • 基本的逻辑控制结构 (IF..ELSEIF..ELSE)
 • 可定制的扩展模块 (输出过滤, 大小写转换, 格式输出, 等等.)
 • 模板编译 (HTML 模板被转换为可执行的PHP代码)
 • 输出缓存 (重用输出页面从而提速你的程序)[/list:u:ba7ae02416]
让我们用一些简单的例子开始,告诉你如何使用 SmartTemplate:

通常的流程是先建立一个WEB页面,展示所需要的效果. 创建简单的页面版式可以使用一个网页编辑器,例如Dreamweaver或者Homesite. 为了获得更为友好的页面版式效果,可以使用一个专业的设计工具,例如Photoshop、 Paintshop Pro或者Gimp等等.

预览: 
[code:1:ba7ae02416]Hello World![/code:1:ba7ae02416]

现在我们来看看达到我们期望的页面版式的HTML源代码:

HTML-源代码 (hello_world.html): 
[code:1:ba7ae02416]<HTML>
<H3>Hello World!</H3>
</HTML>[/code:1:ba7ae02416]

然后开始令人激动的一步: 分离内容和设计. 我们把HTML源代码之中的内容元素替换为模板占位符. 模板占位符被分配一个唯一的名称并且使用一个特有的标签包含起来,这样我们在随后的程序之中可以识别他们. 标题 Hello World! 被替换为一个叫做TITLE 的占位符. 我们是用大括弧来标记占位符, 似的我们的模板引擎可以发现: {TITLE}. 最后HTML模板如下:

HTML-模板 (hello_world.tpl.html): 
[code:1:ba7ae02416]<HTML>
<H3>{TITLE}</H3>
</HTML>[/code:1:ba7ae02416]

使内容整合到模板,我们需要做如下工作:
[list:ba7ae02416]• 调用 SmartTemplate 类 
• 创建一个 SmartTemplate 分析器 对象 
• 告诉 SmartTemplate 要使用的HTM