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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
PHP 已经成熟
Dec 04 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
PHP 透明水印生成代码
Aug 27 PHP
php实现文件下载更能介绍
Nov 23 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
服务器web工具 php环境下
2010/12/29 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
解析php中curl_multi的应用
2013/07/17 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
pyqt5中动画的使用详解
2020/04/01 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
公司庆典活动邀请函
2014/01/09 职场文书
普通话宣传标语
2014/06/26 职场文书
授权收款委托书
2014/09/23 职场文书
辞职离别感言
2015/08/04 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python