xingTemplate 模板引擎 v2.0
http://www.xingTemplate.com
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
xingTemplate 特点:
支持PHP原生态语法
支持无限子模板套用
支持多模板目录
自动读取模板所需资源,并且及时释放资源,严格的资源利用管理机制.
可自定义模板语法标签
支持更改提示语言种类
完善的错误提示机制
高效快速的编译速度
简易的模板语法的使用方法
可控制是否直接插入PHP代码
支持模板二级缓存
支持模板文件大小限制
支持Gzip数据压缩传输
支持模板数据调试模式
支持模板多语言功能
附带模板引擎运行时间统计功能
更多xingTemplate特点,等待您的发现.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
xingTemplate能做什么它的语法风格它的基本语法它的变量调用方法函数调用方法模板输出方法模板中的注释方法模板中插入PHP代码模板的套用模板缓存的使用引擎错误提示机制模板调试模式在模板中使用PHP原生态语法结束语返回目录xingTemplate能做什么?
xingTemplate 是一个基于PHP的模板引擎,主要对于PHP程序的方面快速开发而设计。它可以通过简易快捷的模板语法编译为PHP文件,代入数据进行输出。有效地提高项目的开发速度及管理。 xingTemplate 模板引擎不但小巧而且强大,您可以任意扩展你想要的东西。它超快的速度,绝对是项目之首选。
模板引擎有三个文件
(xingTemplate.php, core.xingTemplate_class.php, core.xingTemplate_debug.php)
xingTemplate.php 为入口文件,里面是关于模板引擎的各项设置.
本手册提到的 $xingTemplate 设置均入口文件内设置。( 省略缩写均为 配置文件设置 )
// 同样可以通过数组方式进行设置
$xingTemplate_set = array('xingTemplate_Left'=>'<!--','xingTemplate_Right_Right'=>'-->');
$xingTemplate = new xingTemplate( $xingTemplate_set );
或者
$xingTemplate->setConfig( $xingTemplate_set );
// 支持多模板目录( 相对路径 )
'templateDir' => array('default' => 'template' , 'default2' => 'template2')
//其中default为模板调用时选择哪套模板而定的,默认 default
'template_Name' => 'default' // 设置模板引擎目录( 此项为特殊需要时修改 )
'classDir' => 'D:/web/xingTemplate' 返回目录它的语法风格
各种模板引擎都有它们自己的语法风格,为了能识别出模板语法,一般都会采用一些符号进行标示,常用的如 {}
在xingTemplate也沿用了其他引擎的风格,方便大家的使用,默认标示符为 {}
当然,你也可以自行定义:
'left_tag' => '{'
'right_tag' => '}' 返回目录它的基本语法
xingTemplate 中继承了PHP中原有的基本语法,如:if / elseif / foreach / for / while
if 和 elseif 的使用方法:
{if $var == 'a'}
那么我就是a
{elseif $var == 'b'}
那么我就是b
{else}
不知道
{/if}
foreach 的使用方法:
//foreach 在模板引擎为了方便,已经改写为 loop(循环) ,亦可以使用 foreach
{loop $array as $value}
//输出你所需要的
{/loop}
另外补充
{loop $array as $key=>$value} // 同时输出key
//输出您所需要的
{/loop}
//{$__i} 可输出循环次数 for 的使用方法:
{for $i=0;$i<10;$i++}
//输出你所需要的
{/for} while 的使用方法:
{while $a<10}
//输出你所需要的
{/while}
返回目录它的变量调用方法
xingTemplate中调用变量和类(属性+方法):
xingTemplate不需要变量声明,只要PHP文件中存在的变量都可以在模板中调用.
{$var} //调用一个变量
{$var['abc']} //调用一个数组
{$var['abc']['abc']} //多维数组调用
{$var->varname} //调用一个类的属性
{$var->fun_name()} //调用一个类的方法
{$var->fun_name()->fun_name2()...} //调用多级对象
//另增强支持类似以下语法:
{$abc+$abc}
{--$abc}
{++$abc}
{$abc++}
{$abc + 9}
{$abc * $abc}
{$abc / $abc}
{$abc.'abc'}
{$abc['key'] + $abc} 等等
以上为smarty3预期功能,xingTemplate率先实现,并且进行加强
//另支持三元运算 {isset($a) 'true' : 'false'}
在特殊情况,您可以能需要单独注入该变量,因为xingTemplate并不能获取如函数,对象内的变量。
$xingTemplate->assign('foo','value');
$xingTemplate->assign(array('foo' => 'value'));
模板中依然用上边的方法进行调用。
返回目录函数调用方法
xingTemplate 中函数的调用方法:
{function_name()} //调用一个函数 如: {time()} / {date('Y-m-d')}
实例:
{time()} // 输出 1250509140
{date('Y-m-d H:i:s')} // 输出 2009-08-17 11:39:00
//另加强功能
{fun() + fun()} 等类似上边变量运算方法 返回目录模板输出方法
在你一切都就绪之后,就是输出你漂亮的模板到你的浏览器,操作如下:
$xingTemplate->display('template_name' [,'default'] );
// template_name 为你的模板名称, default 为选择的哪套模板
* 这样你的浏览器就可以看到模板引擎编译后的HTML的代码了(激动的时刻到了,赶快尝试一下吧) *
$html = $xingTemplate->fetch('template_name' [,'default'] );
//此方法为把引擎编译后的内容返回给$html 而不进行直接输出。
$xingTemplate->display('template_name' [,'default', true ]);
// 此方法为,忽略输出缓存,编译为最新内容,一般为调试时使用。
$xingTemplate->template_Runtime;
// 在模板输出后可以取得模板引擎所运行的时间。 返回目录模板中的注释方法
通常情况下,为了方便二次开发,我们都会对程序进行一些注释。
当然这个在xingTemplate中也是存在的,并且继承PHP原有的方法
{* 这是一个注释 *}
{# 这也是一个注释 #} 返回目录模板中插入PHP代码
在特殊情况下,需要将PHP代码写入模板文件中,xingTemplate 给予了不同的方法实现这些功能。
// 这是常用的方式
{_
if ($a == 'a')
{
// code...
}else{
// code...
}
...php code...
}
{_ yourcode} //意为执行 yourcode
例如:
{_ echo time()} 等于 {time()}
{_ echo $var} 等于 {$var}
//同样也可以直接插入PHP的原风格,但需要开启此功能,默认是关闭的
$xingTemplate->xingTemplate_PHP_off = true;
<php
...php code...
>
另:
为了方便,提供的快捷功能
{_e $var} 等同于 {_ echo $var}
{_p $var} 等同于 {_ print_r($var)} 在某些时候,我们编写的代码因为复杂而堆杂在一起(常见为标示符重复),就会造成引擎不能识别,所以我们提供一下方法
//常见为标示符重复
{_ echo date('{Y-m-d}')}
//按照常用写法,引擎就会报错,因为它不能确定是前一个结束还是后一个结束。
所以我们需要指定一下. "!",它的意思就是忽略后边的标示符。
{_ echo date('!{Y-m-d!}')} // 输出结果为 {2009-08-17} 返回目录模板的套用
xingTemplate 模板引擎中是支持无限模板套用的,这样就使你的开发变得更加灵活起来
{xingTemplate $foo} // 套用$foo模板
{xingTemplate name} // 套用name模板
{xingTemplate dir/name} // 套用模板文件夹中的dir文件夹中的name模板 返回目录模板缓存的使用
一般情况,我们的程序并不需要及时更新以及读取数据库,这是缓存技术能帮我节省更多的系统资源,供程序运行的更高速更稳定
xingTemplate 中提供了内置的模板缓存技术
//PHP code
'cache_is' => true // 开启输出缓存
'cache_time' => 5 ; // 输出缓存有效期 (秒)
$xingTemplate->setConfig('cacheId', 'id');
//标示符必须是唯一的,如果为空,引擎会自动调用当前URL并进行MD5值运算
if (!$xingTemplate->is_cached('name')) //判断缓存是否有效(缓存过期或者不存在)
{
// 无效缓存进行更新
}
$xingTemplate->display('name'); // 输出name模板
另
$xingTemplate->xingTemplate_clean('cache'); // 删除所有输出缓存
$xingTemplate->xingTemplate_clean('compile'); // 删除所有编译缓存
$xingTemplate->xingTemplate_clean('name' [, cacheId]); // 删除name模板的ID标示的输出缓存
$xingTemplate->xingTemplate_clean('name' [, true]); // 删除name模板的输出缓存
返回目录引擎错误提示机制
当你在写错了语法,引擎会给出友好的提示。
当你的函数方法不正确,引擎会给出友好的提示。
等等...
当语法错误的时候,引擎的提示格式
[xingTemplate]
文件名称: {模板文件名}
错误等级: {错误类型或等级}
错误所在: {一般情况下,会指出错在第几行}
错误信息: {PHP错误提示信息}
缓存文件路径: {SERVER_PATH}/xingTemplate_Cache/{name}.phpx_c // 这里为错误源文件地址,方便更详细的找到错误. 为了安全,隐藏主路径
错误源产生在: 275 行
xingTemplate 的提示语言是支持多语言的,如果你想挖掘出更深层次的应用,不妨联系我们进行交流。 返回目录模板调试模式
在你写模板语法时候,为了调试效果,经常会漏掉或者遗忘某些东西,导致不必要的时间浪费。xingTemplate 提供了一个方便的功能 debug.
//debug 可以看出模板引擎的所有配置,以及被引入模板引擎中的所有变量和资源。
//只需简单就可以 , 极大的方便了模板调试。
//(开启后每次运行程序,都会弹出一个窗口,里面就是你需要的东西了)
'debug' => true
返回目录在模板中使用PHP原生态语法
最近在xingTemplate推广时,发现很资深的PHP程序员,喜欢用