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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 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
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
2017/04/13 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
图文详解WinPE下安装Python
2016/05/17 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
CSS3 特效范例整理
2011/08/22 HTML / CSS
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
教育英语专业毕业生的求职信
2014/03/13 职场文书
珠宝店促销方案
2014/03/21 职场文书
父母寄语大全
2014/04/12 职场文书
餐厅筹备计划书
2014/04/25 职场文书
学校运动会通讯稿
2015/07/18 职场文书
校友会致辞
2015/07/30 职场文书
php双向队列实例讲解
2021/11/17 PHP
python脚本框架webpy的url映射详解
2021/11/20 Python