考虑一下:
修改100个模板文件中的同一个内容
修改100个“php代码和html代码混合”的文件中的同一个内容哪个容易修改些??
那个修改错了的后果严重??使用模板的令一个主要目的是“使php代码结构更清晰”

解决方案 »

  1.   

    我一直不看好“模板”,喜欢html和php混合。这样在不借助工具的情况下开发起来比较方便,不受约束。呵呵,喜欢“模板”的朋友要骂我了。^o^
    1、smarty相对其他模板来讲有叫高的执行效率。但他真正执行的是html和php混合代码,这是demo中的一个片段
    <?php /* Smarty version 2.6.2, created on 2004-04-27 08:55:57
             compiled from header.tpl */ ?>
    <?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
    smarty_core_load_plugins(array('plugins' => array(array('function', 'popup_init', 'header.tpl', 3, false),)), $this); ?>
    <HTML>
    <HEAD>
    <?php echo smarty_function_popup_init(array('src' => "/javascripts/overlib.js"), $this);?><TITLE><?php echo $this->_tpl_vars['title']; ?>
     - <?php echo $this->_tpl_vars['Name']; ?>
    </TITLE>
    </HEAD>
    <BODY bgcolor="#ffffff">
    高效率是来自代码混合的,而大多“模板”驱动都是频繁的做串替换2、“关于smarty,其中增加了许多语法。就是说模板文件中可以有更多地非html内容
    ,似乎影响了分离美工和编程的目的。”
    的确如此,这有如.net引入的web控件。不借助可视化工具,开发起来是比较麻烦的
      

  2.   

    smarty 一个优点就是能自然的规范你的逻辑部分使的逻辑部分可以提供代码的重用率。
      

  3.   


    模板不是把PHP代码从HTML上分离开,而是把业务逻辑和显示分离开。
    如果楼主一定认为函数封装也可以做到,那你自己试试看。实践检验真理。
    不过我认为最好的做法还是类跟Smarty一起用,很不错。smarty的确不适合频繁变动的网站,如股市等。那是因为每次显示页面,smarty要重新编译
    不过请搞清频繁的概率,股市是每秒变动一次,跟BBS能比吗?????
    你认为你家的论坛有每秒变动的速度?
      

  4.   

    我用SMARTY感觉还是不错的,不好的就是 页面不太直观,因为里面可能加了很多 (<{if}>,<{foreach}>)等等SMARTT的语法
      

  5.   

    真正实现代码和显示分离的是php+db+xml+xsl;
    但你要学习的是xslt语法
      

  6.   

    phplib如何?一直对模板研究不深
      

  7.   

    请教:PHP代码从HTML上分离和业务逻辑和显示分离的区别?
        我现在是这样干的:网页设计人员先把将动态生成的网页做一份静态页面,在需要
    动态生成的内容地方写一些提示的字符串用来标示。然后,后台程序员将此静态页面拆
    分后封装进函数,在编写前面标示所需的函数,完成制作。
      

  8.   

    嘿嘿,同意唠叨老大的说法,最近用Smarty有体会,呵呵,按照自己的需要定制一个模板不错
      

  9.   

    我对模板的看法可能与smarty的设计思想不同(把业务逻辑和显示分离开)
    我认为模板本身应当是用来分离设计人员与程序员的工作的.
    否则模板本身的实用价值将会大打折扣.marty的语法实在太宠大了,对于这样多的语法需要记忆或是查手册,这严重影响开发效率,在实际当中我是不太支持它的,如果有一天它的语法变得像smart或phplib一样简单易学,我倒是会投它一票,不过目前来说我是不会考虑用它,虽然他对程序员来说是很简单,可是与我合作的美工MM却不会打算接受它.如果设计人员都不用它,那这个模板还有什么用呢,如果每天都得程序员来盯着美工来做模板,那还要美工做什么,不过程序员的美术细胞总不会太好,所以美工还是需要的,所以看来还是模板本身的问题.现在用得最多的还是smart和phplib,因为这两个模板的语法加起来也不到smarty的十分之一.
    而且smart也比smarty快得多.phplib虽然比smarty慢,但语法比smart更简单.这两种模板更利于程序员与美工之间的协作,我有什么理由不用他们而选smarty.嵌入式的编写方式是有速度优势的,至少比用类或是模板方式快(因为少了类的加载时间,实例化时间,模板变量替换时间等开销).合理代码组织,并不比模板的方式更难维护.而且这样美工可以用dw直接打开进行编辑,只是页面如果太复杂,美工又有那么一点点粗心的话就不太好说了:)综上所述.我认为模板本身应当是用来分离php和html的,而不是像smarty所说的分离所谓的业务逻辑和显示(除非美工都是程序员).其实我觉得smarty本身的设计就使其陷入了美工与程序不可分离的境地,这种情况是非常不可忍受的,虽然其体系足够宠大.个人见解,仅供参考.