近期有个人问我:为什么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. JS-JavaScript学习笔记(一)

    javaScript 1.文档的输出:document.write() 可输出字符,表达式,html标签.函数 2.不论什么类型和字符串相加,都会被转换成字符串类型. 比如:var i=5; var ...

  2. Swift 可展开可收缩的表视图

    主要学习与运行效果 在本节的内容中,我们将通过一个具体实例的实现过程,详细讲解在表视图当中,如何创建一个可展开可收缩的表视图.为了让读者有着更为直观的印象,我们将通过模仿QQ好友列表来实现这个效果. ...

  3. Storm集群中执行的各种组件及其并行

    一.Storm中执行的组件      我们知道,Storm的强大之处就是能够非常easy地在集群中横向拓展它的计算能力,它会把整个运算过程切割成多个独立的tasks在集群中进行并行计算.在Storm中 ...

  4. VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel)

    原文:VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel) private void AddRightMenu()         {            Microsoft ...

  5. 内存数据网格IMDG简单介绍

    1 简单介绍 将内存作为首要存储介质不是什么新奇事儿,我们身边有非常多主存数据库(IMDB或MMDB)的样例.在对主存的使用上.内存数据网格(In Memory Data Grid,IMDG)与IMD ...

  6. 警惕!iPhone 6即将上市 诈骗邮件已现身网络

    随着iPhone 6即将上市,各路小道消息已经開始满天飞.就在近几日,一些记者还收到了假的iPhone 6将要上市的通知邮件.趋势科技也收到了几封,下面是样本之中的一个: (垃圾邮件样本) 不清楚iP ...

  7. RGB與CIELAB色彩空間轉換

    原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...

  8. selenium webdriver缺陷

    关闭  selenium webdriver缺陷 除了http://573301735.com/?p=5126讲 的,昨天又发现一个让我1个小时生不如死的问题,就是使用两个不同的配置文件来初始化dri ...

  9. 折扣&折让-看清实质的思考

    折扣&折让 看清实质的思考 Author:zfive5(zidong) Email:zfive5@163.com 引子 有些东西,在没有人指点的情况,一时理解不了,就放一放,等到某一个契机到来 ...

  10. 【CSS3】transform-origin原点旋转

    忙乱, 点 -moz-transform-origin: 0 0; -webkit-transform-origin:0 0; -o-transform-origin:0 0; 以右上角给原点 -mo ...