如题。现在很多PHP的教程都把该模板教程拿出来讲解,以前用PHP的时候从来没接触过模板技术,请问CSDN们的各位前辈们,是不是PHP开发网站就必须要使用模板技术,至今我还不清楚模板技术在PHP中的作用以及带来的好处。请大大们为小弟释疑!谢谢啦!

解决方案 »

  1.   

    也不一定吧,用MVC框架也可以不使用smarty.
      

  2.   

    SMARTY是什么?Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同美工分离,使程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。什么是PHP模板?
      该如何使我的PHP脚本从设计中独立出来?这无疑地是在PHP邮件列表上所提问的最多的问题之一。虽然PHP被标榜为“HTML嵌入式语言”, 在写过许多PHP和HTML混合式的工程之后,我产生了一个分离表单和内容的想法。而且,在许多公司里规划设计者的角色和程序设计者是分开的。于是,这样的一个模板解决方案产生了……
      例如在一个公司,一个应用程序的开发流程如下:在提交计划文档之后,界面设计者[美工]制作了网站的外观模型,然后把它交给后台程序员。程序员使用PHP实现商业逻辑,同时使用外观模型做成基本架构。然后工程被返回到HTML页面设计者继续完善。就这样工程可能在后台程序员和页面设计者之间来来回回好几次。由于后台程序员不喜欢干预任何有关HTML标签,同时也不需要美工们和PHP代码混在一起;美工设计者只需要配置文件,动态区块和其他的界面部分,不必要去接触那些错综复杂的PHP代码。因此,这时候有一个很好的模板支持就显得很重要了。
      纵观现今存在的许多PHP模板解决方案(比如PHPLIB),大多数都只是提供了用模板取代变量和将动态区块的功能有限的格式化的基本方法。但是我们的需求比这个要高的多。我们完全不想要PHP程序员去设计HTML页面,可是这又是不可避免的。例如:如果美工想要在动态区块之间交替不同的背景颜色,他就可能得和程序员预先说好。同样,美工们也应该有自己对于页面设计的配置文件,这同样可以通过变量把他们拉到模板里边去。Smarty优点
      1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
      2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
      3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
      4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。
      5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。不适合使用Smarty的地方
      1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,导致经常重新编译模板,所以这类型的程序使用Smarty会使模板处理速度变慢。
      2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。Smarty的诞生
      早在1999年后期,我们就已经开始为模板引擎写说明文档。在完成这个文档之后,我们开始用C写一个模板引擎,并有希望被包含到PHP里去。在 撞上了许多的技术难题的同时,“什么是模板应该做的,什么不该做”这个问题,也被热烈的讨论着。从这些经验,我们决定应该用PHP将模板引擎写成一个类,让任何觉得合适的人使用它。所以我们写了一个引擎,从此就有了Smarty。(注:这个类以前从来没有公开发表过)。这个类几乎达到了我们所有的要求:常规变量替换,支持包括其他模板,使用配置文件集成设置,嵌入PHP代码,限制'if'语句的作用,还有更多的可以多层嵌套的健壮的动态区块。它用常规表达式做到这一切,于是代码变得相当令人费解。在每次调用的时候,都要去解析那些语法和常规表达式,于是在大型应用的时候,它显然慢了下来。在程序员的眼光看来,最大的问题还是使用PHP脚本建立和处理模板和动态区块的所有必要工作。我们应该如何使他变得更简单?
      我们可以想象Smarty应该有怎样的最后表现。我们知道PHP代码如果没有了模板解析的开销将有多快,我们也知道从一般的美工看来PHP语言是多么的“恐怖”,然而这一切可以被一种更简单的模板语法掩饰掉。我们应该怎样把这两种方法的长处结合起来?
      于是,Smarty诞生了……
      

  3.   

    没有什么必须的,如果有一个必须,那也只能是PHP……
      

  4.   

    我以前也不喜欢SMARTY,但自从用了一次,就爱上了..确实是方便多了..而且还可以造很多你意想不到的东西出来,建议还是去学习一下吧..工作就为了提高罢了..---------------------------用技术换广告,谢谢支持------------------------------------------------
    Ventes Batteries PC Portable, Alimentation PC Portable, Batteries Camescope, Appareil Numerique, des Chargeurs
    rolex watches, Replica Watches, Replica Watch
    R4DS Cartes, Cartes R4, R4 DSi, R4 SDHC Pour Nintendo DS / DS, Dsi 
    baterias
    R4DS Cartes, Cartes R4, R4 DSi, R4 SDHC Pour Nintendo DS / DS, Dsi
    R4DS Cartes, Cartes R4, R4 DSi, R4 SDHC Pour Nintendo DS / DS, Dsi
    R4DS Cartes, Cartes R4, R4 DSi, R4 SDHC Pour Nintendo DS / DS, Dsi
    R4DS Cartes, Cartes R4, R4 DSi, R4 SDHC Pour Nintendo DS / DS, Dsi
      

  5.   

    个人喜好吧,其实也没啥用处,看看那些开源的优秀程序有那个用它了?
    DZ、PHPwind都在用自己的简易函数操作
      

  6.   

    那么请问各位大大,目前的PHP技术,在中小型网站开发中,常用或不可或缺的技术有哪些,我罗列一些,敢请各位前辈们审阅一遍,看看对不对或者缺少了什么:
    1,PHP服务器端语言。
    2,Javascript客户端脚本控制+Ajax无刷新技术。
    3,数据库技术(以MySQL为例,数据库优化、查询优化,索引,存储过程,ADODB数据表移植,视图)。
    4,其它必学或要掌握的,HTML、XML、CSS、DIV,Smarty、(还有MVC技术,但是这个概念我还不知道怎么实现)。
    请教,以上有哪些技术在中小型企业网站开发中,不是必需的。
      

  7.   

    不一定的,php有好多的模板引擎,除了smarty意外还有好多其他的模板呢,只不过smarty是用php写的比较有名的一个,相对于其他的模板引擎可能有优势,但也不是必须用的。做PHP网站必须用到的就是PHP,其他的就没有什么必须的了。其实做网站也不是说必须就得用PHP,也可以用asp、asp.net、jsp等好多种web语言,各有各的优势所在。用模板或学东西学的活一点,多问他们有经验的人,别怕问题简单,别怕别人笑你。
      

  8.   

    做网站其实一直在速度,稳定性,安全性,易用性等多个方面去找平衡点。用smarty有一定的好处比如更易使前台与后台的分离,也更安全一点,但是执行速度上可能会有影响,不过也不是很明显。
      

  9.   

    我不会用,mvc这块还没学到,努力中