近期有个人问我:为什么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. PostgreSQL的备份与还原

    导出: cmd,然后一直cd,到PostgreSQL的bin下面,用其pg_dump程序: pg_dump -h localhost -U ivms864013 ivms864013 > G:\ ...

  2. 一个解析RTSP 的URL函数

    写了一个解析URL的函数,可以提取URL中的IP 和 port. 如:url = "rtsp://192.168.1.43:2554/realmp3.mp3"; url = &qu ...

  3. Matlab图像处理系列1———线性变换和直方图均衡

    注:本系列来自于图像处理课程实验,用Matlab实现最主要的图像处理算法 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操 ...

  4. Swift - 使用arc4random()、arc4random_uniform()取得随机数

    arc4random()这个全局函数会生成9位数的随机整数   1,下面是使用arc4random函数求一个1~100的随机数(包括1和100) 1 var temp:Int = Int(arc4ra ...

  5. [IDEs]Eclipse For Mac , 常用快捷键

    Cmd + O:  查看.java中得方法,变量,等结构 Cmd + T:     查看继承关系 Cmd + K:          查找下一个选中的成员 Cmd + E:  查看已经打开的文件 Cm ...

  6. Linux内核驱动开发之KGDB原理介绍及kgdboe方式配置

    接博文<Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)>.上篇博文中,仅简单介绍使用串口的Kgbd的流程(kgdboc方式),本文将重点介绍KGDB调试Linux内核的原 ...

  7. ps中图层混合模式算法公式

    网上已经有很多讲解ps的图层混合模式,有些不详细甚至是错误的,参考网上给出的公式及其自己在验证推倒的,给出27种的混合模式算法公式.也许存在一定的错误性,毕竟没有官方给出公式,只能说以供参考吧. 只考 ...

  8. dokcer 运行和进入容器

    <pre name="code" class="html">docker:/root# docker run -itd --name zjtest8 ...

  9. POJ 3076 Sudoku (dancing links)

    题目大意: 16*16的数独. 思路分析: 多说无益. 想说的就是dancing links 的行是依照 第一行第一列填 1 第一行第二列填 2 -- 第一行第十五列填15 第一行第二列填 1 -- ...

  10. wkhtmtopdf--高分辨率HTML转PDF(一)

    原文:wkhtmtopdf--高分辨率HTML转PDF(一) 一.需求 这次工作中遇到一个需求,要求把网页转换为PDF,穷极了很多的方法,包括尝试了itextsharp来转换,虽然可以实现,但是分辨率 ...