PHP 模板高级篇总结


Posted in PHP onDecember 21, 2006

如何使用PHP来快速地编写代码,模版似乎成了唯一的选择。但是一个PHPer最终应该坚持使用模版,放弃模版,还是使用自己的模版?

    以下想法是属于所有PHPer的想法:

    “模板这东西,其实最重要的是适合自己的项目需求,而不是适合自己的习惯.比如一个企业的宣传网站,访问量不大,更新量也不大,用什么都一样,甚至不用,直接PHP+HTML写可能速度最快.也没什么不可.但是如果是一个新闻系统,或者是内容发布系统.两者这样,就非常有必要用到模板这一技术.因为他们都有一个共通的地方,就是有一类页面要用到同一个样式的页面设计.而根据实际情况,比如访问量的大小,项目的紧急程度以及程序员对于模板技术的熟练程度,选择最适合项目的模板技术..这才是首选。”[来自leslee]

    “从开始学习php就开始接触模板,我用的是smarty模板引擎(官方支持,功能强大),使用时间越长越发觉得模板是个好东西。只要要涉及到页面显示的东西,我的都会用模板去写,如果不用模板写程序总觉得别扭。我想其他的phper也会有相同的感觉,因为模板设计的初衷是将代码和页面分离出来分别处理,毕竟谁也不愿意一边写代码,一边处理页面。”

    “有人说SMARTY已经很好了,但也有人说SUPERTPL更好,也有人更中意于PHPLIB我认为每个模板都有自己优点,也有自己的不组,关键看你的项目需要什么,用什么最好!”[来自feifengxlq]“用模板肯定是没有错的最初使用的是PHPLIB,使用过了一段时间后,感觉太简单了,每个模板变量都要写代码去替换,每引用一个模板也得写一行代码(也许PHPLIB有批量处理功能,我太菜不知道)因而放弃了,后来用plog建站的时候接触到了smarty,感觉smarty过于庞大,确实能加快开发进度,但是很多功能实际都用不上,因此,最后还是自己写了模板引擎,要模板实现的功能很简单,就是一个模板变量的替换功能,再加上include其他模板和foreach块操作功能。”

    “我还是用PHPLIB,不过,我会按自已的经验与需要,写一些函数或类来封装最常用的一些针对模板输出的处理。”[来自seraph]“我使用自己的模板,还要写模板解析代码,累呀。我选择使用现有优秀的模板。”[来自Bantu]“偶在别的论坛上看见一些很厉害的人不用模板...可能是没到那种境界...个人感觉还是使用模板的好..至少可以分工..加快开发速度。使用自己的模板? 感觉没有必要哈...用现成的就行了..在现成的基础上加上一些自己学要的实际功能。”[来自Phzzy]“我不使用模板引擎,但我也是使用模板,只是跟你们的不一样。因为模板引擎太慢了感觉不好用。”

    “我用第三方的,最好是开源的。至于用哪个,看个人的爱好吧。”[来自leeyupeng]“我还是倾向于使用自己的模板简单实用。”[来自夕日]“由于考虑到性能,我一般不使用通用的模板,会根据实际情况做一些取舍,具有一定的局限性。”[来自Ben]“根据需要来决定使不使用模板,以及使用什么模板。灵活一点总是没有坏处的。”[来自xlmo]“个人喜欢简单快速的模板,可以考虑用现成的模板,不过一般会根据实际项目优化一下,把里面用不到的一些功能删除等。”

    “使用模板一般倒不会导致瓶颈,至于会影响点效率主要这么几点:

    1、程序和模板分离后,一个文件就变成两个或者多个了,那读取模板这个IO也是要点时间的
    2、解析模板相对是比较复杂的,一般都需要N个 preg_match,preg_replace之类函数来处理或者替换
    3、模板的载入和替换工作明显需要比不使用模板占用更多的内存

    所以提高效率注意以下几点:

    1、模板解析程序选用支持编译和缓存的,这个对性能好处是最明显,看自己怎么灵活应用了
    2、解析程序尽量简单,什么功能都放进去那用起来是方便了,性能也差了
    3、做html的模板页面时候也是遵从简单的原则,比如按xhtml标准做,尽量不要把一个页面拆成很多个模板然后再include。”

    “如果使用模版的话,我觉得有能力还是自己写一个好。这也是锻炼。不过要用我觉得小强很好。可以在可视化下编辑。”[来自jejwe]“我个人也认为模板文件的可视化编辑性非常重要。不能要求模板页面的制作也要有相当程序开发基础的。”[来自seraph]“具体问题具体分析,模板使用与否,选择已经成型的优秀模板类还是自己去写,一切都是根据具体的项目开发而言的,不能死求哪一个的。”[来自Deepseath]“感觉现有的那些模版不够完善,要么功能少,要么速度慢,还是自己做的好。”

    “总结,PHP模板可以让你的代码脉络更加清晰,结构更加合理化。但是,PHP模板的发展总是会比PHP应用的迅速发展缓慢许多,在这种情况下,反而会影响到PHP应用的开发。对于每一个PHPer来说,没有一个PHP模板对他是最合适、最完美的。因为所谓的PHP模板就是大众化的东西,并不是针对个人的。所以,如果能在对PHP特点、应用有清楚的认识的基础上充分认识到模板的优劣势和该PHP应用原理,PHPer就能得到自己需要的适合自己开发风格的PHP模板。这也是PHP最重要的思想之一,PHP提供的只是方法、途径,而不是最终解决方案。所以模板和PHP应用、产品一样都可以改造为自己的PHP模板。因为这里面寄托着创造者的思想。

    限于各种不同的条件限制,比如时间、经验,所以大家可能认为做一个自己的PHP模板是非常困难。其实,你需要的不是重新构造一个PHP模板,而是选择一个最贴近自己的PHP模板加以改造。因为PHP需要继承、创新。当然,做一个自己的PHP模板一步一步地实现,并及时融入最新的思想和理念。个人PHPer可以从细节做起,从自己最需要的地方、自己的开发习惯做起。PHPer团队可以分工协作进行PHP模板本地化,尤其对于公司而言尤为实用。就算你只是修改了PHP模板里面的一个符号,仅仅是一个符号也能说明你对它加以了改造,它就是属于你的。最重要的是,属于自己的PHP模板永远不是固定不变的,它将伴随你一直成长,也会成为你的PHP历程的见证。

    PHP不需要非常精通的语法;PHP不需要你自己去开发众多的库;PHP不需要你去为性能、稳定性等语言自身的特性而担心。PHP需要的是你的逻辑;PHP需要的是你的创造力;PHP需要的是你的思想!”

PHP 相关文章推荐
php 缓存函数代码
Aug 27 PHP
PHP高级OOP技术演示
Aug 27 PHP
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
PHP实现简单汉字验证码
Jul 28 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
php简单截取字符串代码示例
Oct 19 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 PHP
PHP函数utf8转gb2312编码
Dec 21 #PHP
小偷PHP+Html+缓存
Dec 20 #PHP
PR值查询 | PageRank 查询
Dec 20 #PHP
转PHP手册及PHP编程标准
Dec 17 #PHP
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 #PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 #PHP
PHP读MYSQL中文乱码的解决方法
Dec 17 #PHP
You might like
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
实例讲解php数据访问
2016/05/09 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
django修改models重建数据库的操作
2020/03/31 Python
python计算auc的方法
2020/09/09 Python
法制宣传标语
2014/06/23 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2015年化验员工作总结
2015/04/10 职场文书
设备技术员岗位职责
2015/04/11 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
python中tkinter复选框使用操作
2021/11/11 Python
python 镜像环境搭建总结
2022/09/23 Python