dwoo是2008年初推出的一款PHP5/PHP7模板引擎,而这款引擎被开发出来的主要原因就是我们的smarty引擎越来越老了,而且已经开始无法适应新版PHP带来的功能了,所以这款模板引擎就被开发出来替代smarty为我们的用户提供服务。
dwoo提供了一种易于管理和实用的方法,它分离了逻辑代码和外在内容,用来将原本与HTML代码混杂在一起PHP代码逻辑分离,简单的将就是是PHP程序员能够同前段人员奋力工作,是程序员改变程序的逻辑内容不会影响到前端人员的页面设计,而前段人员如果修改页面也不会影响到程序的程序逻辑,这在多人和做进行PHP网站开发的时候尤为重要。dwoo相比较于smarty,功能更加丰富,并且兼容性更强,而且众多开发者也证明了这款模板引擎在许多领域要比后者运行更快,效果更好,除此之外,为了方便我们用户过度,dwoo还为用户们提供了一个兼容性层,让开发人员逐渐转变使用习惯和开发技巧。
安装方法
解压dwoo,将解压目录命名为dwoo。当然,你也可以用pear的安装方法安装,方法为:
pear channel-discover pearhub.org
pear install pearhub/Dwoo
使用教程
一个模板,简单地说就是一个文本文件。可以生成任意多种文本格式(HTML、XML、TPL等等)。Dwoo没有确定的文件后缀,.html或者.tpl都可以。
一个模板包含在模板运行的时候被替换为确定的值的变量和表达式以及控制模板逻辑的标签。
下面是介绍了一些基础的简易模板。细节的东西稍后附上:
在Dwoo里,只用一种定界符用来定位变量、表达式以及标签。
##变量
应用程序传送变量到模板,你可以在模板中使用它。变量也许拥有一些你可以访问的属性或者元素。一个变量是怎样的很大程度依赖于应用程序的提供。
你可以使用下标点(.)来访问PHP变量的属性(PHP对象的方法或者属性、数组的项),或者被称为下标的标签的”[]”。
##全局变量
下面的变量在模板中是一直有效的。
你也可以使用下面的访问方式访问PHP中的全局变量。
##函数
函数可以被调用来生成内容。函数通过函数名和括号以及可选参数来调用。
例如date_format函数:
{date_format "now" "Y-m-j"}
##命名参数
使用命名参数让你的模板有更明确的意义。
{date_format value="now" format"Y-m-j"} 命名参数也允许你跳过一些你不想改变其默认值的参数。
{date_format format="mhttp://www.jingyuming.com//d/y" timestamp=$.now modify="+150 day"}
##注释
如果想在模板中注释一行代码,可以使用这样的语句:{*...*}。
这些注释是Dwoo处理的,而且不像HTML注释一样,它不会被输出到浏览器上。
这对于调试或增加一些信息给其他前端使用者或者你自己。
##引入其他模板
include函数对于引入模板和返回另一个模板的渲染内容到当前模板中十分有用。
{include('header.html')} 有时候也许你需要在不通过Dwoo类的get或output函数来传递数据到页面中就传递参数到其他页面中。下面这个通过作为参数加到函数后面的例子可以实现:
{include(file='site_header.tpl' title='About Us')}
##模板继承
Dwoo最强大的部分就是模板继承。模板继承允许你建立一个基于包含了你网站的所有常用元素和定义一些子模板可以重写的模块的模板骨架。
听起来很复杂但实际上是很简单的。通过使用一个例子学习就能很容易地明白。
定义一个基础模板:base.html。包含了简单的用于显示两列页面的HTML骨架文本。
一个字模板可以使这样的:
##HTML过滤
如果你需要显示HTML的代码,你可以使用escape函数:
by:hoohack
{"some
html tags"|escape} 将输出:
some <strong>html</strong> tags
dwoo特色
模板继承
继承将OOP的概念带入模板,允许您定义可由子模板扩展的基本模板。
灵活插件
插件可以包装在类或简单的功能中,可以预先编译,以优化模板的加载时间等。
Smarty语法兼容性
兼容几个添加和快捷方式,以加快模板写作速度。