php_smarty模板引擎与.NET_VTemplate模板引擎对比
首先在写这篇文章前,先和大家分享一句话:
“现在能做什么就认真的去做吧,未来的事情不用担心了”。
哈,这句话,其实真的是想告诉自己而已,在博客上写着PHPer,那个时候还真的是以为会一直写PHP,没想到,今天改成了ASP.NET。
好,其他就不说了,说不定以后也有PHPer会转到ASP.NET或者ASP.NET转到PHP也不一定哈。所以,今天写下这篇文章,让对smarty非常熟悉的我和VT模板来对比对比。
我一直相信,学新的技术语言只有在对比自己非常熟悉的语言之后学的会更快,更有印象。
当然了这两个都只是一个模板引擎而已,技术难点并不会特别复杂。而他们共同的目的是把后台的数据显示到前台展示页面上。
所有列出以下功能点:
1、单个变量输出在页面上,并且有一些格式上的处理。例如:时间格式
2、列表变量或者数组变量输出在页面上,进行foreach输出列表。
3、通过模板引擎调用后台方法,取得结果显示。
对于我来说,只要明白这些,几乎能在一个项目中很好的发挥作用了。如有遗漏的,欢迎评论拍砖。谢谢。
PHP之Smarty |
ASP.NET之VTemplate | ||
1、单个变量输出在页面上,并且有一些格式上的处理。例如:时间格式 | |||
前台显示: {$name} {$name|capitalize} [首字符大写] {$name|count_characters} [字符计数] {$nowTime|date_format:"%H:%M:%S"} [格式化日期] {$name|lower} [小写] {$name|strip} [去除(多余空格)] {$name|truncate:30:"..."} [截取后多出的改成...] {$name|strip_tags} [不解析html标签]
|
后台代码: $smarty->assign("name", "JoshChen"); $smarty->assign("nowTime", time()); |
前台显示: {$name} {$name.length} [字符计数] {$nowTime format='yyyy-MM-dd HH:mm'} [格式化日期] {$name length=30} [截取至30个字符...] {$name htmlencode=“true”} [不解析html标签] {$name removehtml=“true”} [去除html标签]
|
后台代码: this.Document.Variables.SetValue("name","JoshChen"); this.Document.Variables.SetValue("nowTime", time()); |
2、if语句处理 (smarty处理和后台是非常相似的,而VT模板引擎是有带compare的表达式属性。) | |||
前台显示: {if $age == 18} 你是18岁! {else} 你不是18岁! {/if} |
后台代码: $smarty->assign("age", 18); |
前台显示: <vt:if var="age" value="18" compare="="> 你还是18岁哦! <vt:else> 你不是18岁了! </vt:if> |
后台显示: this.Document.Variables.SetValue("age", 18); |
3、列表变量或者数组变量输出在页面上,进行foreach输出列表。(smarty的key的值是从0开始,VT引擎的key的值是从1开始) |
|||
前台显示: {foreach from=$arr_name item=var_name key=i} {$i}、name: {$var_name}<br> 2、name:李四 |
后台代码: $arr = array(" 王二","张三","李四"); $smarty->assign("arr_name", $arr);
|
前台显示: <vt:foreach from="$arr_name" item="var_name" index="i"> {$:i}、name: {$:var_name}<br> 3、name:李四 |
后台代码: String[] arr = new String[]{"王二","张三","李四"}; this.Document.Variables.SetValue("arr_name", arr); |
4、通过模板引擎调用后台方法,取得结果显示。(在这里的区别是,smarty调用方法后,会直接输出结果。而VT引擎则是给一个变量赋值) | |||
前台: {test_function name="王二"} {test_function name="张三"} 输出结果: 王二你好!张三你好! |
后台代码:
$smarty->register_function("test_function", "print_name_date"); function print_name_date ($name) { |
前台显示
<vt:function var='#.val' method="text_function" type="$Page" args="王二"></vt:function> {$#.val} 输出结果: 王二你好! |
后台代码: public String text_function(String name) |
4、当然以我在校学习的经验,老师的一句话确实记忆很深刻,了解了一个语法的增删查改,你几乎是可以做一个简单的系统了。像这个模板引擎,也是为了区分后台和前台的配合以及前台页面的整洁性,所以不会特别复杂,主要处理都是显示变量,判断语句,和循环数据显示。希望能够帮助学过smarty或者学过VT模板其中之一的同学,来了解另一种模板引擎。这里也是我个人觉得比较重要的,会了这些几乎项目就不成问题了。
具体的话,想深入的同学可以看看手册:
smarty手册:http://www.php100.com/manual/smarty/
VT模板引擎教程:http://www.cnblogs.com/kingthy/tag/vtemplate/
欢迎拍砖,欢迎批评!