近期有个人问我:为什么PHP须要模板呢?整个站点的编写都是我一个人完毕的,从前端到后端,都是这样,我一个人写站点是不是就不须要模板了呢?我当时还真给问住了,也没想好非常合适的回答它的方式,于是就随便说了几点理由,如今细致想想,大致有例如以下几点理由。

第一点就是PHP代码和HTML代码的分离,它并非几个人做的事,就像前端的HTML和CSS通常也是一个人写,那为什么不直接在HTML里面把布局搞定呢?原因就是混乱,我们把CSS代码和HTML代码写到一起,大家能够看看诸如新浪等站点的网页,刚才我还真看了一下,6606行,六千多行,在里面改动一下样式,想改动点东西,光找就得找半天,没错,于是,我们追求把HTML和CSS分开写,就是为了查找改动方便。

我也写过不少HTML和PHP混编的网页,主要是用于教学实例用,可是大都不长,也就两三百行左右的样子,那个时候我改动就感觉有点费劲了,假设是想改动PHP代码,必须在三百行里找,关键是这三百行还不全是PHP代码,而是混编的,于是就得区分,这个非常麻烦,假设沃恩分开写呢,我们写一百多行的PHP代码,然后写二百多行左右的HTML代码,不论我们去改动自己的PHP还是去改动HTML,都非常方便,为什么,由于代码少啊,并且这对于PHP代码的逻辑更有优点,它能够让我们编写PHP代码思路更清晰,更easy调试错误。

第二点就是缓存,这也是新手常常不知道缓存的重要性导致的,缓存非常重要。我记得有位大师说过,假设PHP内置了缓存,那么它的性能可以提高五百倍。试想一下,新浪站点的首页那么多内容,光静态化的页面就有六千多行,假设是让PHP来做,它先须要去数据库中取出数据,然后自己完毕相关的逻辑处理,然后交给Apache或者nigix去处理,整个过程的开销是非常大的,于是,我们把网页静态化为一个固定的HTML页面,这样,server直接发送静态页面,效率至少提高十倍。这一点静态化,就须要用到模板技术了,没有哪个模板不支持缓存,非常多模板可以解读PHP原生的代码也是由于如此,由于缓存重要,而不是编写模板的符号是什么。

可能有人会说;我的站点是个小站,还须要缓存吗?答案是能够不用缓存,可是缓存绝对不会拖累你,(尽管会占用少量的硬盘),因此,支持页面缓存并不会拖累你的站点,当然,其它缓存就不好说了,从这一点上来说,使用模板的缓存是不会起到负面作用的。

第三点就是多人分工开发的时候,使用模板更好,由于模板技术多数有一个PHP网页的变量和模板网页的变量技术的相应,多人开发的时候,每一个人的命名都有自己的习惯,这一点能够保证多人工作的衔接更好,不会出现他必须知道你要怎么做它才干做,这样能够更好的协同多个人的工作,让工作效率更高效。那么一个人须要使用模板吗?答案就是看你的工作量大小了,假设你在网页中改动PHP代码感觉不到麻烦,能够不用,假设在网页中改动PHP代码感觉非常累,那就恐怕须要使用模板技术了。

第四点就是通用性,这点怎么说呢,假设读者是一開始就从事的PHP开发,那么肯定感觉不到,假设读者之前开发过Python或者Java,那就会感受到它的重要性了,由于Java和PHP和HTML的配合都不如PHP那么好,因此,我们通过使用模板,能够让从事其它语言开发的人开速的使用PHP进行开发,这能确保不会出现那种有其它语言经验的不想转入到PHP语言中来,由于我之前是搞Java的,这点,我懂得。。

假设读者有什么看法,能够给我留言,我会认真回复的。

辛星解读为什么PHP须要模板的更多相关文章

  1. 辛星解读mysql的用户管理

    可能做开发的多半不太关注这方面,可是要说到做运维.那就不能不关注了.由于我们都知道,root的权限太大了.不是随便能用的.我们平时最好用一些比較低的权限的用户.这样会让我们的安全性大大提高,也能防止我 ...

  2. 2014年辛星解读Javascript之DOM之冒泡和捕获

    上篇博客提到了Javascript事件绑定函数的三个參数.第一个是一个event.第二个是一个function.第三个是一个布尔变量.它用于指定事件传递的顺序,分为冒泡和捕获两种方式,接下来我们将揭开 ...

  3. 2014年辛星解读Javascript之用DOM动态操纵HTML元�

    关于DOM,我们了解了能够用DOM操纵HTML的一些属性和样式,还能够为HTML元素绑定事件等等,那么接下来,我们将涉及到用DOM来动态的创建.删除HTML等一些操作,我的核心思路还是重实战,因此,代 ...

  4. 2014年度辛星解读css第四节

    接下来的这一节我计划解说的是超链接和列表的样式,然后我们做出一个导航栏出来,事实上导航栏是很常见的,可是我们这里做得这个有点并不那么完好,等我们学完了css之后再完好它. ************** ...

  5. 2014年辛星解读css第一节

    CSS是Cascading Style Sheets的缩写.即层叠样式表,它用于表现HTML的样式,即HTML仅仅是去写该网页有哪些内容,至于怎样去表现它们,由CSS去定制. ************ ...

  6. 2014年辛星解读css第五节

    本小节我们解说css中的"盒模型".即"box model",它通经常使用于在布局的时候使用,这个"盒模型"也有人成为"框模型&q ...

  7. 2014年辛星解读css第二节

    第一节我们简单介绍了一下CSS的工作流程,我相信读者会有一个大体的认识,那么接下来我们将会深入的研究一下CSS的细节问题,这些问题的涉及将会使我们的工作更加完好. *************凝视*** ...

  8. 2014年辛星解读css第六节

    这一节我们就要讲到布局了,事实上布局本身特别简单.可是要合理的布好局就不那么简单了,就像我们写文章一样.写一篇文章非常easy,可是要写一篇名著就非常难了,这须要我们扎实的功底和对文学的理解,可是.千 ...

  9. 2014年辛星解读css第三节

    第二节我们讲述的差点儿全是CSS的选择器,那么以下这一节我们来讲一下CSS的颜色和文本的一些东西,尽管我对调色不大敏感.可是对于颜色还是比較感兴趣的. *********CSS中的颜色******** ...

随机推荐

  1. hdu 4550 贪婪 思考题 权

    http://acm.hdu.edu.cn/showproblem.php?pid=4550 想了挺久,然后各种分类 最终AC,假设是现场,对自己没信心的话,预计还是要WA,,,,,,然后搜题解,发现 ...

  2. 移动App-UI配制篇

    杂志app-UI配制篇 背景 现在公司有需求是关于杂志app,里面每个页面可能有不同的展现方式,不同的内容,不同的操作方式.那么这里就有一个需求就是根据用户定制这些不同的展现方式,不同的内容,不同的操 ...

  3. tbb 线程安全concurrent_queue的性能

    tbb实现了线程安全的queue,这样程序员既可以不用和那些lock,mutex,criticalsection打交道,又大大提高性能,太给力了..比较的结果见代码中的注释.结果可以看出代码足足少一半 ...

  4. NET Core全新的配置管理

    NET Core全新的配置管理[共9篇] 提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来 ...

  5. AngularJs打造一个简易权限系统

    AngularJs打造一个简易权限系统 一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJ ...

  6. android JNI处理图片的例子

    android JNI处理图片的例子 原地址:http://blog.csdn.net/xjwangliang/article/details/7065670 <pre class=" ...

  7. Android 实现自己定义多级树控件和全选与反选的效果

    博文開始之前,首先要感谢大牛:(lmj623565791),本博文是在其博文http://blog.csdn.net/lmj623565791/article/details/40212367基础上进 ...

  8. 谈论高并发(三十)解析java.util.concurrent各种组件(十二) 认识CyclicBarrier栅栏

    这次谈话CyclicBarrier栅栏,如可以从它的名字可以看出,它是可重复使用. 它的功能和CountDownLatch类别似,也让一组线程等待,然后开始往下跑起来.但也有在两者之间有一些差别 1. ...

  9. webservice之cxf样例

    整理參考于网上资源: http://wenku.baidu.com/link?url=MbPPOKCficQCAwSZduszpMFSD3f8xCKeNz6YUtwFS1TkHharz1aPPfkXD ...

  10. 破解.net程序 编译和反编译方法

    原文地址:http://www.cnblogs.com/li-peng/archive/2013/01/31/2886727.html 有好多.net程序有加密狗或者有验证,如果exe或dll没有做过 ...