关于speedy,来牢骚一个

#1 SunPSP

怎么说呢,speedy是让我又爱又恨啊
喜欢呢,是他够直接够暴力,直接用PHP,各种麻烦省去了,直接上手用,而且表现也不错
恨呢?
1.缺少编译功能,不能预先把html文件编译成php文件备用,问题就出来了,include进来的文件必须是.php文件,html文件就没法跑其中的代码。。。。偏偏模板上早习惯了html格式的文件。这个可能就是大伙儿说的没有模板缓存吧,手册上解释模板引擎的那章硬是没看懂,新手各种苦逼啊,如果有误还请指导下。。。。
2.少了个基本语法,看着满模板的标签还是比较蛋疼的,换成常见的大括号{$xxx}多干净,这个应该不存在学习成本吧,早让smarty带成常识了

其他的暂时没想到?能跑PHP,基本各种问题都能解决,为的只是更易用
坛子里搜了下speedy,发现还是有蛮多人用的,希望J大能稍微完善下,不能因为只是个替补方案就简陋成这样啊,一些基本的还是加上的好吧
毕竟不是谁都喜欢smarty的,这个东西怎么说呢,虽然我没实际用过,但是有看过,说实话上手感觉有些麻烦,额外学个语法不大合算,不过好处也有,貌似有些作坊找人指明就要会smarty的{:soso_e141:}

额外再请教下
模板引擎中所指的缓存到底是什么东西?
别说看手册了,真的看了,迷糊中,小白一个勿见笑哈
单纯指模板引擎预编译html文件为php文件加快模板解析速度
还是涉及了数据的缓存能减负载(貌似这个没模板引擎什么事儿啊)?
跟那些个SQL缓存,SP的ACCESS缓存有啥区别么?

speedy说是没有缓存不使用缓存
SQL缓存跟SP的ACCESS缓存还是用得上吧,总不能每次请求都查库吧
那样speedy还真不如直接先SQL再直接echo出来呢
跟smarty的差别应该就是在对html文件的预编译上?

J大说smarty启用缓存速度跟speedy一样快,这里理解,俩个都是直接跑PHP了
一样的系统,就模板引擎一个smarty一个speedy
除了程序表现分离上的差别,其他应该没差别了吧?
速度?
其他什么并发啊负载啊啥的,怎么看都跟模板引擎没关系啊,有差别么?

唉,牢骚发了一大通,希望哪位好心的大大路过解下惑

2013-01-10 00:48:16

#2 jake

怎么说呢,speedy是让我又爱又恨啊
喜欢呢,是他够直接够暴力,直接用PHP,各种麻烦省去了,直接上手用,而且表现也不错
恨呢?
1.缺少编译功能,不能预先把html文件编译成php文件备用,问题就出来了,include进来的文件必须是.php文件,html文件就没法跑其中的代码。。。。偏偏模板上早习惯了html格式的文件。这个可能就是大伙儿说的没有模板缓存吧,手册上解释模板引擎的那章硬是没看懂,新手各种苦逼啊,如果有误还请指导下。。。。

模板的编译,简单而言就是把HTML里面的{$xxx}标签,替换成php的语法,所以为什么speedy没有编译,就是因为是直接写了“编译后”的php语法。

2.少了个基本语法,看着满模板的标签还是比较蛋疼的,换成常见的大括号{$xxx}多干净,这个应该不存在学习成本吧,早让smarty带成常识了

其实php本身最早的时候就是模板语言,最早的时候php就是和html混搭在一起使用,到现在也有许多程序是这样写的。比如说像最流行的wordpress,cms里面的php168等等,模板也是


如果你觉得自己是新手,那么记住一点:speedy = php原生模板。

其他的暂时没想到?能跑PHP,基本各种问题都能解决,为的只是更易用
坛子里搜了下speedy,发现还是有蛮多人用的,希望J大能稍微完善下,不能因为只是个替补方案就简陋成这样啊,一些基本的还是加上的好吧
毕竟不是谁都喜欢smarty的,这个东西怎么说呢,虽然我没实际用过,但是有看过,说实话上手感觉有些麻烦,额外学个语法不大合算,不过好处也有,貌似有些作坊找人指明就要会smarty的

speedphp提供smarty和php原生模板两种,是有道理的。smarty是最流行最长寿也是目前最活跃的php模板引擎,已经是业界标准。而speedy,也就是php原生模板,这是php最早的写法,也是php最简单的模板引擎,这里不存在什么完善不完善,毕竟php本来就是那样的。而且php本身也有对模板做一些改进,看手册speedy一章,有写到这些改进。比如说的写法。


至于其他模板引擎,0708年曾经也有过php模板引擎百花齐放的时候,不过能生存下来的没几个,而且都是自定体系,没办法通用,这种模板引擎学来也没用。smarty至少是那么多年来php官方推荐的,大多数用php的人都会。


简单来说,就是学好smarty(其实很容易)和php原生模板,基本上在模板这块就没什么好学的了。当然,连smarty那么简单的语法都不敢去学,那也没什么好说的。

额外再请教下
模板引擎中所指的缓存到底是什么东西?
别说看手册了,真的看了,迷糊中,小白一个勿见笑哈
单纯指模板引擎预编译html文件为php文件加快模板解析速度
还是涉及了数据的缓存能减负载(貌似这个没模板引擎什么事儿啊)?
跟那些个SQL缓存,SP的ACCESS缓存有啥区别么?

缓存这块,模板开启缓存,就和把整个页面的结果存到spAccess里面一样。缓存原理是一样的。和spCache的sql缓存不同的,是模板缓存缓存的区域是整个页面,spCache缓存的是数据库的数据。spAccess可以缓存两者(还可以缓存其他变量),只是用模板的缓存更方便。

speedy说是没有缓存不使用缓存
SQL缓存跟SP的ACCESS缓存还是用得上吧,总不能每次请求都查库吧
那样speedy还真不如直接先SQL再直接echo出来呢
跟smarty的差别应该就是在对html文件的预编译上?

和上面说的一样,模板缓存和数据库缓存是两回事,各做各的,没有冲突。建议你真的有兴趣“研究”,开启smarty缓存后,看看smarty的缓存文件就知道是什么了。

J大说smarty启用缓存速度跟speedy一样快,这里理解,俩个都是直接跑PHP了
一样的系统,就模板引擎一个smarty一个speedy
除了程序表现分离上的差别,其他应该没差别了吧?
速度?
其他什么并发啊负载啊啥的,怎么看都跟模板引擎没关系啊,有差别么?

有一些区别,因为smarty3还加入了一个更牛的功能,当你include一个模板时,smarty编译会把include的模板也塞到当前模板里面编译,也就是没了include的过程。
不过就初学者而言,可以把它们理解成编译后完全没区别就行。(记住,我之前一直说是编译后没有区别,没有说过缓存后没有区别)

唉,牢骚发了一大通,希望哪位好心的大大路过解下惑

最后说一下,大部分的php程序,速度最慢的地方在数据库读写,模板引擎只要方便、代码分离就够了,不需要在这块纠结过多。

2013-01-10 09:18:21

#3 jake

补充一下,对于“新手”,

speedphp提高的两个模板引擎:最流行的smarty和最原生的speedy(php),就是业界最多人使用的两种模板引擎。

所以没必要去太纠结什么对啊错的,等你真的写过几个php项目,真的入门了,回头再看,就会一切都了然了。

不走弯路,就是捷径。

2013-01-10 09:24:15

#4 SunPSP

明白点了,感谢J大回复

2013-01-11 16:51:17