模板的优势?smarty的问题?

wowowowo 2004-04-26 10:21:28
这几天学习了一下smarty有些想法(初学模板,误见笑):
模板比用函数封装html代码有什么优势?(当然,实现了html和php的分离,可是用函数封装也可以办得到的,或许模板有更巧妙的用法)
关于smarty,其中增加了许多语法。就是说模板文件中可以有更多地非html内容
,似乎影响了分离美工和编程的目的。
smarty的手册中说smarty不适合显示的数据需要频繁更新的系统,如天气预报
,股市,因为第一次的编译比较慢。可php本生就是为了动态生成网站的,如bbs。难道要把频繁变动的和不太变动的区分开来编写

感谢各位解我疑惑
...全文
225 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
netstu 2004-07-16
  • 打赏
  • 举报
回复
b
flyonet 2004-07-15
  • 打赏
  • 举报
回复
我同意唠叨老大的那一句
模板就是在进行数据库操作,之后作串替换。
mistjin 2004-04-27
  • 打赏
  • 举报
回复

模板不是把PHP代码从HTML上分离开,而是把业务逻辑和显示分离开。
如果楼主一定认为函数封装也可以做到,那你自己试试看。实践检验真理。
不过我认为最好的做法还是类跟Smarty一起用,很不错。

smarty的确不适合频繁变动的网站,如股市等。那是因为每次显示页面,smarty要重新编译
不过请搞清频繁的概率,股市是每秒变动一次,跟BBS能比吗?????
你认为你家的论坛有每秒变动的速度?
ustb 2004-04-27
  • 打赏
  • 举报
回复
我对模板的看法可能与smarty的设计思想不同(把业务逻辑和显示分离开)
我认为模板本身应当是用来分离设计人员与程序员的工作的.
否则模板本身的实用价值将会大打折扣.marty的语法实在太宠大了,对于这样多的语法需要记忆或是查手册,这严重影响开发效率,在实际当中我是不太支持它的,如果有一天它的语法变得像smart或phplib一样简单易学,我倒是会投它一票,不过目前来说我是不会考虑用它,虽然他对程序员来说是很简单,可是与我合作的美工MM却不会打算接受它.如果设计人员都不用它,那这个模板还有什么用呢,如果每天都得程序员来盯着美工来做模板,那还要美工做什么,不过程序员的美术细胞总不会太好,所以美工还是需要的,所以看来还是模板本身的问题.

现在用得最多的还是smart和phplib,因为这两个模板的语法加起来也不到smarty的十分之一.
而且smart也比smarty快得多.phplib虽然比smarty慢,但语法比smart更简单.这两种模板更利于程序员与美工之间的协作,我有什么理由不用他们而选smarty.

嵌入式的编写方式是有速度优势的,至少比用类或是模板方式快(因为少了类的加载时间,实例化时间,模板变量替换时间等开销).合理代码组织,并不比模板的方式更难维护.而且这样美工可以用dw直接打开进行编辑,只是页面如果太复杂,美工又有那么一点点粗心的话就不太好说了:)

综上所述.我认为模板本身应当是用来分离php和html的,而不是像smarty所说的分离所谓的业务逻辑和显示(除非美工都是程序员).其实我觉得smarty本身的设计就使其陷入了美工与程序不可分离的境地,这种情况是非常不可忍受的,虽然其体系足够宠大.个人见解,仅供参考.
chinaworker 2004-04-27
  • 打赏
  • 举报
回复
smarty 一个优点就是能自然的规范你的逻辑部分

使的逻辑部分可以提供代码的重用率。
kurt1983 2004-04-27
  • 打赏
  • 举报
回复
web开发就是这么麻烦
xuzuning 2004-04-27
  • 打赏
  • 举报
回复
我一直不看好“模板”,喜欢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控件。不借助可视化工具,开发起来是比较麻烦的

countstars 2004-04-27
  • 打赏
  • 举报
回复
嘿嘿,同意唠叨老大的说法,最近用Smarty有体会,呵呵,按照自己的需要定制一个模板不错
wowowowo 2004-04-27
  • 打赏
  • 举报
回复
请教:PHP代码从HTML上分离和业务逻辑和显示分离的区别?
我现在是这样干的:网页设计人员先把将动态生成的网页做一份静态页面,在需要
动态生成的内容地方写一些提示的字符串用来标示。然后,后台程序员将此静态页面拆
分后封装进函数,在编写前面标示所需的函数,完成制作。
feyge 2004-04-27
  • 打赏
  • 举报
回复
phplib如何?

一直对模板研究不深
stanely 2004-04-27
  • 打赏
  • 举报
回复
真正实现代码和显示分离的是php+db+xml+xsl;
但你要学习的是xslt语法
feixuehenshui 2004-04-27
  • 打赏
  • 举报
回复
我用SMARTY感觉还是不错的,不好的就是 页面不太直观,因为里面可能加了很多 (<{if}>,<{foreach}>)等等SMARTT的语法
hahawen 2004-04-26
  • 打赏
  • 举报
回复
考虑一下:
修改100个模板文件中的同一个内容
修改100个“php代码和html代码混合”的文件中的同一个内容

哪个容易修改些??
那个修改错了的后果严重??

使用模板的令一个主要目的是“使php代码结构更清晰”

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧