说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。
不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。
下面我把一些范例写出来,看看能不能触发一下大家的创新思维:
1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}>
模板代码
- <{@strcmp "123456789" "12345678"}>
- <{@strtoupper $hello}>
2. 内置函数标签:在文本区域内的自动函数支持
模板代码
- <{@strtoupper "$hello strlen($hello) strcmp($hello,'world')"}>
- <{if $hello=strtolower('WORLD')}>Is world<{/if}>
- <{if strlen($hello) + 3 = 5}>$Hello var length is greater than 5<{/if}>
3. 变量赋值:<{assign name=变量名 expr=表达式}>
模板代码
- <{assign name=hello expr=strlen($hello)+5}>
- <{assign name=hello expr="strlen($hello) + 5" }>
4. 属性表达式:在某些系统支持的属性中可以提供表达式支持
模板代码
- <{for start='$start + 3' stop=count($ints) step=2 value=i}><{$i}>.<{/for}>
由于提供了内置表达式支持,因此CMSPAD的模板引擎并不需要兼容Smarty的modifier语法。
整个系统的函数,我们分成了三个部分:公用函数、内置函数、标签函数,三个函数可以分开进行设置。公用和内置函数库,默认使用了系统的函数库,而用户可以自行定义或覆盖默认函数(例如支持中文的substr函数)以达到更理想的效果。所谓标签函数,就是类似于Smarty上的函数样式。与其不同的一点是,我们把switch函数给简化成下列样式:
模板代码
- <{switch $hello}>
- <{case "hello"}>
- This is Hello
- <{case 'world'}>
- This is World
- <{case}>
- This is Default
- <{/switch}>
目前,此库正在进行beta测试中。
分享到:
相关推荐
火萤桌面视频新特性:四边触发
4. 执行模板:在Visual Studio中,保存T4模板文件将会自动触发模板的执行,生成的代码会出现在与模板同目录下的.cs文件中。 四、T4模板应用 1. 代码生成:除了实体类,T4还可以生成数据访问层(DAL)、业务逻辑层...
在这个场景中,我们关注的是"MVC3模板引擎生成静态页",这是一个提高网站性能和SEO(搜索引擎优化)的有效策略。 模板引擎是MVC框架中的关键组成部分,它允许开发者通过定义模板来控制页面的布局和样式。在ASP.NET ...
在IT行业中,创建引人入胜的演示文稿往往需要运用一些视觉效果来提升观众的体验,例如“点击触发图片放大效果”。这个标题所指的“点击触发图片放大效果ppt模板”是一种交互式的设计,它允许用户通过点击小图来查看...
然而,这种方法不能完全确定器件是否完好无损。 - **高级检测**:为了更准确地检测双向触发二极管,需要提供大于250V的直流电压源。检测过程中,通过管子的电流不应超过5mA。使用晶体管耐压测试器进行检测非常便捷。...
在电力系统仿真中,PSCAD(Power System Computer-Aided Design)是一款强大的工具,尤其在电力电子器件的触发分析方面有着显著的应用。本文主要探讨了如何在PSCAD中处理电力电子器件的触发以及相关的一些关键知识点...
标题中的“AJAX中不触发javascript事件”指的是在使用AJAX技术进行页面更新时,可能出现JavaScript事件不按预期触发的情况。这通常是由于AJAX请求更新页面部分时,不会触发表单提交、点击或其他依赖于页面刷新的...
在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)中,实现外部IO触发相机采集图像是一项常见的任务,特别是在自动化测试、机器视觉以及数据采集等应用中。LabVIEW作为一个图形化编程环境,以其...
4. 高频振荡回路中TVS的特性分析:尽管TVS在脉冲功率技术中的应用广泛,但在高频振荡回路中的电流开断特性尚不明确。本文通过在四种不同振荡频率的回路中改变电感值,对TVS进行了实验研究,得到了高振荡频率下TVS的...
《电平触发与边沿触发的概念,以及RS、JK、D触发器的解析》 触发器,作为数字电路中的基础元件,是存储一位二进制信息的最小单元电路。其核心特性在于它拥有两种稳定状态,可以分别表示逻辑0和逻辑1,并且在输入...
STM8单片机是STMicroelectronics公司推出的一款8位微控制器,因其低功耗、高性能和易用性而被广泛应用。...通过深入理解STM8的定时器和ADC特性,开发者可以进一步优化这种触发机制,以适应更多复杂的应用场景。
模板引擎允许开发者使用标记语言来定义页面布局和设计,然后通过数据绑定将动态数据填充到这些模板中。这通常涉及使用服务器控件、数据源和数据绑定表达式,如`<%# %>`或`<% %>`。 EFPlatform.TemplateEngine v1.0 ...
其中,**触发功能**是示波器的核心特性之一,它使得用户能够精确地捕捉特定类型的信号变化,这对于故障诊断、信号分析以及电路设计等工作至关重要。 #### 二、触发的基本概念 - **触发**: 是指根据预设的条件(如...
作为专门为ASP.NET设计的模板引擎,EFPlatform.TemplateEngine应无缝集成到ASP.NET MVC或Web Forms架构中,通过控制器动作或Page生命周期事件触发静态页面的生成。 6. **部署和配置**: 使用EFPlatform.Template...
例如,你可能需要创建一个JSON文件存储变量数据,然后在模板文件中引用这些数据。此外,可以通过设置插件配置实现自动化任务,如自动编译保存的模板文件。 **总结** Htmlc插件为Sublime Text3用户提供了无缝集成...
《电子政务中的晶闸管跨接器触发电路——基于负阻特性》 电子政务,作为信息化技术在政府管理和服务中的应用,不仅提高了行政效率,也优化了公共服务。在这个领域中,电力电子技术的应用尤为关键,特别是在自动化和...
DALSA相机外触发设置与连接的知识点包含了相机设置、连接方式、CamExpert参数设置和信号线路连接等多个方面。该知识点适用于新手以及刚接触机器视觉的人员,帮助他们理解如何对DALSA相机进行外触发设置以达到预定的...
"灵感触发会议"是一个旨在激发创新思维和产生新构想的会议模式,它鼓励与会者跳出常规,提出富有创意的解决方案。以下是该会议的主要知识点: 1. **概述**:会议开始时,演讲者通常会提供一个简短的介绍,概述会议...
主要内容包括对外触发取像的基本概念、Halcon中的异常处理机制以及如何在实际编程过程中运用这些技术。 ### 一、Halcon外触发取像基本概念 #### 1. 外触发简介 在外触发模式下,图像采集由外部信号控制。这种方式...
1. 非线性系统:非线性系统是指系统的输入与输出之间不存在线性关系,其行为不能简单用线性方程来描述。在工程和科学领域中,非线性系统非常常见,且相比线性系统,它们往往表现出更加复杂的动态特性。 2. 事件触发...