`
yipsilon
  • 浏览: 244707 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

CMSPAD中的模板引擎新特性,看看能否触发你的创新想法~

PHP 
阅读更多

说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。

不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。

下面我把一些范例写出来,看看能不能触发一下大家的创新思维:

1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}>

模板代码
  1. <{@strcmp "123456789" "12345678"}>  
  2. <{@strtoupper $hello}>  

2. 内置函数标签:在文本区域内的自动函数支持

模板代码
  1. <{@strtoupper "$hello strlen($hello) strcmp($hello,'world')"}>  
  2. <{if $hello=strtolower('WORLD')}>Is world<{/if}>  
  3. <{if strlen($hello) + 3 = 5}>$Hello var length is greater than 5<{/if}>  

3. 变量赋值:<{assign name=变量名 expr=表达式}>

模板代码
  1. <{assign name=hello expr=strlen($hello)+5}>  
  2. <{assign name=hello expr="strlen($hello) + 5" }>  

4. 属性表达式:在某些系统支持的属性中可以提供表达式支持

模板代码
  1. <{for start='$start + 3' stop=count($ints) step=2 value=i}><{$i}>.<{/for}>  

由于提供了内置表达式支持,因此CMSPAD的模板引擎并不需要兼容Smarty的modifier语法。

整个系统的函数,我们分成了三个部分:公用函数、内置函数、标签函数,三个函数可以分开进行设置。公用和内置函数库,默认使用了系统的函数库,而用户可以自行定义或覆盖默认函数(例如支持中文的substr函数)以达到更理想的效果。所谓标签函数,就是类似于Smarty上的函数样式。与其不同的一点是,我们把switch函数给简化成下列样式:

模板代码
  1. <{switch $hello}>  
  2.   <{case "hello"}>  
  3.     This is Hello   
  4.   <{case 'world'}>  
  5.     This is World   
  6.   <{case}>  
  7.     This is Default   
  8. <{/switch}>  

目前,此库正在进行beta测试中。

分享到:
评论

相关推荐

    一个jQuery插件用于数据绑定的HTMLRender模板引擎

    HTMLRender是一款基于jQuery的数据绑定模板引擎,主要用于帮助开发者在JavaScript中高效地进行DOM操作和数据渲染。这款插件是jQuery的一个扩展,它提供了一种简洁的语法来将数据与HTML结构进行绑定,使得动态生成和...

    火萤桌面视频新特性:四边触发

    火萤桌面视频新特性:四边触发

    T4 模板引擎 生成实体

    4. 执行模板:在Visual Studio中,保存T4模板文件将会自动触发模板的执行,生成的代码会出现在与模板同目录下的.cs文件中。 四、T4模板应用 1. 代码生成:除了实体类,T4还可以生成数据访问层(DAL)、业务逻辑层...

    mvc3 模板引擎生成静态页

    在这个场景中,我们关注的是"MVC3模板引擎生成静态页",这是一个提高网站性能和SEO(搜索引擎优化)的有效策略。 模板引擎是MVC框架中的关键组成部分,它允许开发者通过定义模板来控制页面的布局和样式。在ASP.NET ...

    点击触发图片放大效果ppt模板.rar

    在IT行业中,创建引人入胜的演示文稿往往需要运用一些视觉效果来提升观众的体验,例如“点击触发图片放大效果”。这个标题所指的“点击触发图片放大效果ppt模板”是一种交互式的设计,它允许用户通过点击小图来查看...

    PSCAD在电力电子器件的触发

    在电力系统仿真中,PSCAD(Power System Computer-Aided Design)是一款强大的工具,尤其在电力电子器件的触发分析方面有着显著的应用。本文主要探讨了如何在PSCAD中处理电力电子器件的触发以及相关的一些关键知识点...

    双向触发二极管结构、特点及应用

    然而,这种方法不能完全确定器件是否完好无损。 - **高级检测**:为了更准确地检测双向触发二极管,需要提供大于250V的直流电压源。检测过程中,通过管子的电流不应超过5mA。使用晶体管耐压测试器进行检测非常便捷。...

    相机外触发_dalsa相机接线_海康线阵相机_大华、海康面阵相机外触发接线_相机外触发_

    在IT行业中,尤其是在工业自动化和图像处理领域,相机的外触发功能扮演着至关重要的角色。本文将详述“相机外触发”这一主题,主要聚焦于Dalsa相机的接线、海康线阵相机以及大华、海康面阵相机的外触发接线电路原理...

    AJAX中不触发javascript事件

    标题中的“AJAX中不触发javascript事件”指的是在使用AJAX技术进行页面更新时,可能出现JavaScript事件不按预期触发的情况。这通常是由于AJAX请求更新页面部分时,不会触发表单提交、点击或其他依赖于页面刷新的...

    基于语义的中文事件触发词抽取联合模型1

    总结来说,这个基于语义的中文事件触发词抽取联合模型通过深入挖掘论元语义信息和关联事件之间的语义联系,有效地提升了事件触发词抽取的准确性和效率,尤其对于那些信息不完整的事件实例,表现出更强的识别能力。...

    LabVIEW中如何实现外部IO触发相机采集图像

    在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)中,实现外部IO触发相机采集图像是一项常见的任务,特别是在自动化测试、机器视觉以及数据采集等应用中。LabVIEW作为一个图形化编程环境,以其...

    360新版特性界面

    在这个案例中,可能会用到QLabel来展示特性描述,QPushButton作为点击触发动作的按钮,而QScrollArea可能被用来创建可滚动的特性列表,以便在有限的屏幕空间内展示更多内容。 此外,为了实现界面的自适应布局,Qt的...

    高频振荡回路中触发真空开关的特性分析

    4. 高频振荡回路中TVS的特性分析:尽管TVS在脉冲功率技术中的应用广泛,但在高频振荡回路中的电流开断特性尚不明确。本文通过在四种不同振荡频率的回路中改变电感值,对TVS进行了实验研究,得到了高振荡频率下TVS的...

    电平触发与边沿触发的概念;RS、JK、D触发器的符号及其逻辑功能;触发器的基本应用、逻辑功能之间的转换等。

    《电平触发与边沿触发的概念,以及RS、JK、D触发器的解析》 触发器,作为数字电路中的基础元件,是存储一位二进制信息的最小单元电路。其核心特性在于它拥有两种稳定状态,可以分别表示逻辑0和逻辑1,并且在输入...

    STM8单片机通过PWM波触发定时器采样

    STM8单片机是STMicroelectronics公司推出的一款8位微控制器,因其低功耗、高性能和易用性而被广泛应用。...通过深入理解STM8的定时器和ADC特性,开发者可以进一步优化这种触发机制,以适应更多复杂的应用场景。

    labview机器视觉硬触发相机外部触发.rar

    4. **编程触发逻辑**:在“硬触发.vi”程序中,你需要编写触发逻辑,比如当满足某个条件(例如,传感器检测到物体)时,发送触发信号。这通常涉及到事件结构和条件分支。 5. **图像采集**:一旦触发信号发送,相机...

    双向触发二极管用什么可以代换

    双向触发二极管(2CTS)是属于三层结构,具有正、反向转折电压,且其正、反向伏安特性非常对称。常见型号有DB3型双向触发二极管,实测它的正反向击穿(可逆)电压为25V左右。附图2为简易击穿电压测试仪,测量400V...

    ASP.NET-[其他类别]asp.net生成静态页面的模板引擎.zip

    模板引擎允许开发者使用标记语言来定义页面布局和设计,然后通过数据绑定将动态数据填充到这些模板中。这通常涉及使用服务器控件、数据源和数据绑定表达式,如`&lt;%# %&gt;`或`&lt;% %&gt;`。 EFPlatform.TemplateEngine v1.0 ...

    详解示波器触发功能专题.pdf

    其中,**触发功能**是示波器的核心特性之一,它使得用户能够精确地捕捉特定类型的信号变化,这对于故障诊断、信号分析以及电路设计等工作至关重要。 #### 二、触发的基本概念 - **触发**: 是指根据预设的条件(如...

    asp.net生成静态页面的模板引擎EFPlatform.TemplateEngine v1.0_aspnetms.zip

    作为专门为ASP.NET设计的模板引擎,EFPlatform.TemplateEngine应无缝集成到ASP.NET MVC或Web Forms架构中,通过控制器动作或Page生命周期事件触发静态页面的生成。 6. **部署和配置**: 使用EFPlatform.Template...

Global site tag (gtag.js) - Google Analytics