近期有个人问我:为什么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. 不用splitter控件 简单实现对mfc对话框的分割的方法

    不用splitter控件  简单实现对mfc对话框的分割的方法 直接贴上源代码主要部分吧 这个是基于对话框的工程 进行对话框的分割实现 只是相应了三个消息函数,看一下就会明白的 我空间资源里边有现成的 ...

  2. 【Demo 0004】屏幕、窗体及视图基础知识

    本章学习要点       1.  了解iOS中应用程序(UIApplication)与屏幕.窗体以及视图相关基础知识:       2.  掌握应用程序常用的属性与方法:        3.  掌握窗 ...

  3. hdu 5183(hash)

    传送门:Negative and Positive (NP) 题意:给定一个数组(a0,a1,a2,⋯an−1)和一个整数K, 请来判断一下是否存在二元组(i,j)(0≤i≤j<n)使得 NP− ...

  4. Phpcms V9 所有的中文变量

    $LANG['start_update_category'] = '开始更新栏目页 ...'; $LANG['start_to_end_id'] = '" 第{page} - {endpag ...

  5. CentOS5.6下安装Oracle10G软件 【保留报错经验】

    CentOS5.6下安装Oracle10G ****************************************************************************** ...

  6. thinkphp 3.2.3 入门示例

    原文:thinkphp3.2 1.安装WAMPServer,到D:\wamp\. 2.下载ThinkPHP3.2.3核心版.解压缩后,放到D:\wamp\www\MyWeb\.打开浏览器,输入网址:h ...

  7. Android Fragment的介绍与使用(案例Demo)

    应用场景: 众所了解Android上的界面展示都是通过Activity实现的,可是Activity也有它的局限性,相同的界面在手机上显示可能非常好看,在平板上就未必了.为了让界面能够在平板上更好地展示 ...

  8. ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展

    关于ExtJS对javascript中的Array的扩展.能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 因为 ...

  9. CoreJava_Collection接口add有一个返回值!

        今天讨论与朋友小知识,我发现很多人不知道collection接口定义add方法返回的值,我们所有的工作很多年Java职工.不熟悉的公共接口,使自己成为在细节上的麻烦.一个小采访这让我想起,当我 ...

  10. hdu1281+hdu2819(最大匹配数)

    分析:将行和列缩点,即行对应二分图的X部,列对应二分图的Y部,然后交点为连接该行和该列的一条边.匹配时每点都会把整行整列占了,因此就不会出现冲突了. 传送门:hdu1281 棋盘游戏 #include ...