To i2346(oceanwave):错了,phplib更复杂,例如多维数组的显示,它用块的概念还要在多个循环了assign,简直搞笑死,根本没有开发便利性。To all:我的建议是用btemplate,它是用str_replace而不是像smarty等那样用正则,里面也有if功能,不过我不认同在模版里使用逻辑功能,所以我在btemplate原来精巧的基础上重新去掉没用的东西,加上了cache功能,经我测试smarty、smarttemplate可以去死了,当然btemplate没有提供什么include功能,但还是那句话,逻辑的功能是应该在.php文件里组织重用。最后是好是坏理应自己多方面多环境下测试使用,不要做马屁精、跟尾狗。
能实现SmartTemplate这种功能的模板不要太多,
看看现在的SmartTemplate的官方站点,连网页的更新都没有了,几百年不变
前两天稻草人兄发的一个新闻管理系统我看了,不大适合我的工程。
我本来要选用SMARTY的,
稻草人用的就是SMARTTEMPLATE。
所以发帖来求证一下想让各位星星及使用模板技术开发过项目的各位大虾给出出主意,,感谢。另外,我有些顾虑。。SMARTY生成的临时文件如果太多,比如10000个用户,就是80000个临时文件,会不会对速度造成影响,如果我想用SMARTY生成静态页该怎么做呢?
SMARTY 输出还是用到php代码。你可以看下它的缓存文件是什么样子的。
比如,可以修饰变量。FOREACH. SECTION....IF..ENDIF 等等,,因此我现在左右为难TO: uuq(杜牧)
SMARTY编译后的模板临时文件是这样的:%%0E^0E4^0E407559%%footer.tpl.php
别说它如何神,能满足需求即可!
能具体说明一下吗?
只有一个文件,研究起来也容易,要其它的扩展功能也有很多现成自带的,
我推荐大家用PHPLIB,尤其是初学者。
你打开
%%0E^0E4^0E407559%%footer.tpl.php
看看里面的内容
谢谢你
SMARTY我早已经研究过了,,我在这里发帖只是想大家讨论一下,SMARTY和其它模板技术之间的优劣及是否适合我这个10000以上用户每用户8个模板页以上的工程(要求速度不能太慢)
如果不适合应该选择哪种模板技术比较好。。还希望大家多多比较,多多提意见
N年前就说smartphp的好,好了,现在唠叨说好你就跟着上,你看过里面的代码吗?它是不是真的达到闭着眼睛就要选它的水平吗?它速度快吗?它很精巧吗?对比过其它模斑引擎吗?知道模板是干嘛吗?知道mvc的本质吗?在模版文件里出现if还说分离,你还说“可以让php脱离html存在”,实在高。
汗颜。鄙人拙见。我说的话,也只是代表我个人的观点。并不一定是怎么高的。
至于说模板方面,phplib和smarty也学过很多,但是都没有实用过,所以不知道它们的功能如何。但我觉得smarty至少是文件太多,phplib才一个模板文件呢。
但是我没说它不好。确实是唠叨说好我就跟上,代码我也没详看,可以说我看不懂,不想看。我只在乎抓到老鼠的猫。
我的php经验不多,甚至可以说是小儿科,很幼稚,我连一点成形的思想都没有,我所说的,只是个人经验。
smartemplate是快是慢,我就不得而知了,不过记得以前看过一个比较,smarty最快smartemplate第二phplib第三。
精不精巧,我觉得好用就行了吧。
mvc本质在下孤陋寡闻,模板带上if它确实是更方便分离,这样有些判断处的html代码就不必要带在php中。我承认我的学识浅薄,也希望大家相互交流促进。
smartemplate 就小巧多了,不过如果把全部能力都加上也有小200k了
这两种都属于编译型的模板驱动,实际执行的是php和html混编代码。
因此追求高速度当首推混编代码,有点离题了phplib template是解释型模板驱动的代表,在程序和界面分开这一点上做的较好。当然速度上要慢一点。应该说编译型的模板更有点象一种语言,引用模板驱动只是完成数据环境的准备。而界面的显示和控制都交给模板语言来完成
用phplib 解析IBArticle 首页 平均在116ms左右
用smartTemplate解析 平均在40ms左右
个人认为选择模板能够满足自己需要就行了.
个人认为
如果不是生成静态页者类似的
smartTemplate
Smarty 两个都好
因为他不用再查数据库了。
phplib不同他是每次都查数据库然后再替换。
如果你扩展下phplib完全可以达到smartTemplate效果。
你所测试的情况是phplib 还要查数据库
smartTemplate 第一次它会生成缓存文件。
第二次不用了。
所以时间会快点
能否缓存查询数据并不是主要问题,因为在很多情况下数据是频繁变化的
所有的模板都不会缓存数据(当然,缓存html页面是另外一回事),
只是不需要再次处理字符串的替换的问题.
偶就要模板有for、if两个功能。确实就能做到 “php脱离html存在。”确实要这样才能分离。不知道phplib有没有。看看去。
比如你如果做的是生成静态页面的文章或者新闻系统。
就可以用smarty。一般生成的新闻内容不会再变了。
如果你做的是内容频繁变化的系统应该用smartytemplate或者phplib之类的模板在加一个缓冲。
编译型的模板
就是把模板编译成php文件。就是为什么模板里面有for、if,为什么第一次访问会很慢(因为要编译模板)。
当我们给标签赋值时,并不是替换。我理解是:标签已经转为变量了。所以等于给变量赋值。
解释型的模板
只是把模板数据读到内存。但他还是字符串数据。
当我们给标签赋值时。才是真正的字符串替换。时间就是耗在这些字符串查找和比较。正因为这样后来发展出来有Smarty,对于smartTemplate 我不是很清楚。
对于模板。数据比较少的。两者应该不相上下。
因为phplib本身代码是10K。Smarty多少我就不知道,xuzuning(唠叨)说有500k
大家都知道php是脚本语言。并不是二进制程序。
每次执行都要读入内存分析语法。两都耗时我就不说了。对于phplib加上生成静态页的。
我想应该比Smartyt和smartTemplate都要快。因为他不用包含那那么多代码。
当发现当前页没有静态页时。马上用phplib生成静态页。
如果用Smartyt和smartTemplate再生成时。除了慢。还要每次携带他自身。
------------------------------
如果不是生成静态页者类似的
smartTemplate
Smarty 两个都好
PHP生成的RESPONSE为XML格式,然后根据客户选择的模板选择不同的XSL解析XML,而这个过程放到了客户端去~~~也会更快~~~(前提是放弃兼容性)
控制流程只用了for-each和if,
外加个取值value-of和包含include
用XSL的语法
全解释形的,代码与呈现分离个人觉得smarty太繁了
不适合我爱偷懒的个性
phplib的方法名称实在叫人不爽
嘿嘿
到不是很重要,因为不可能会一下子有许多人同时生成网页.而应该考虑的是模版文件的使用
跟美工的配合问题.也不知道猜的对是不对....呵.
1.如果产生80000个SMARTY编译的临时文件,浏览的速度会不会变慢。
2.求SMARTY生成静态页的好文章
现在在用PHPLIB,当初没选SMARTY的原因就是要学的时间比PHPLIB要花费的多得多,而且在实际开发时要做的处理也相对复杂——这是时间成本。
以后也有可能会用SMARTY,但那要等有空的时候。毕竟写程序是要赚钱的,花的时间越短越好,开发越便利越好。在我的观点,如果最终浏览速度不是在大单位数量级的差别的话,还是要开发便利性为先,反正现在的网站空间,除非专线专机,浏览得快不快并不单是程序的问题,更多是服务器的,线路的问题——就算程序再快,一条线、一台机N个网站一起用,"Hello World"也会要等上N分钟。
所以,我的建议是,还未决定用什么模板系统的,先用上PHPLIB,先上手。在做出一、两个比较成熟的系统后,再在实用的基础上考虑用更“先进”的模板系统。
请各位指正