lownr(廖宇雷)  您说得非常不错:)
但我现在要实现的功能是:通过smarty生成静态文件。而模版中{php}标签里定义的内容是不确定的。比如:$getNews(3,4,5,6,7)或者$getNews(5,4,2,5,6)。之所以想要这种设计是想在制作模版的时候给用户更多的选择。总不能在处理templates之前就将所有的可能性的结果都计算出来吧。这样子效率就....不敢想像了。

解决方案 »

  1.   

    <{foreach from=$array2 item=item key=key}>
                        <tr>
                          <td><div align="center"><{$item.id}></div></td>
                          <td><div align="center"><{$item.name}></div></td>
                          <td><div align="center"><{$item.regdate}></div></td>
                          <td><{$item.so_unitprice}></td>
                          <td><div align="center"><a href='productedit.php?act=del&id=<{$item.id}>'>删除</a></div></td>
                          <td><div align="center"><a href='productedit.php?act=mod&id=<{$item.id}>'>修改</a></div></td>
                        </tr>
      <{/foreach}>我个人目前为止还不打算用Smarty
    原因如下:
    Smarty的目的就是让你把业务逻辑代码从HTML模板中分离出来[引用lownr(廖宇雷)],这句话说的真是不错,
    但向上面写的东西,是呼"真的"分开了,可仔细想想和直接用php写的代码没有什么区别"<{foreach from=$array2 item=item key=key}>"可以说是一个循环,类似while
    "<{$item.id}>" 一些变量输出了,类是<?=?>如果将以上代码完全用PHP,会是这样
    <? foreach($array2 as $key=>$value):?>
                        <tr>
                          <td><div align="center"><?=$value?><div></td>
                        ...  
                        </tr>
    <?endforeach?>居然在html中可以用smarty的流程控制,和自己的语法,编译之后再转成php的语法,有点晕!还有一点是关于文件修改的问题
    如果需求有改动怎么办?是不是只修改模板文件就可以了吗?不见得吧!
    如要在模板文件中加一数据项,模板处理文件也要修改
    因为在使用一种工具时,主要是看它给人们带来了什么便利,我认为smarty没有给我带来什么便利,所以一直没有用smarty.就像以前我为什么很喜欢用htmlhelp一样.最后还有一点,模板文件和模板文件处理文件谁来写
    现在MVC不是很流行吗(我想模板技术也有之意)开发者角色           相关系统逻辑         职责 
    网页设计人员         View视图/界面        设计所有用户界面的网页模板。 
    控制流程开发人员     Controller控制/流程  编写系统流程中的所有PHP页面。 
    商业逻辑开发人员     Model模型/逻辑       开发系统设计中规定的各个类(其中的方法)。 在现实中控制流程开发人员,商业逻辑开发人员往往是一个人或一些人
    网页设计人员当然负责页面设计了,他们不可能会类似"<{foreach from=$array2 item=item key=key}>"
    的编写.所以模板文件和模板文件处理文件不可能是由"网页设计人员"来写的最可怕的一件事可能是突然"网页设计人员"说他要所页面重新做一下,这个时候会怎么样,
    模板文件和模板文件处理文件可以都要做修改,只不过是改多或改少的问题模板文件和模板文件处理文件综合在一起可以说就是最初的PHP文件了,使用模板技术看起来只不过是将一个问题分成两个问题来解决了也上也许是偏面之谈!想请这里最有威望的唠叨说一说吧!