简析wordpress与discuz、smarty模板技术的根本区别

近日了解了下php的模板技术,准备在接下来的要做的程序中使用。因为是团队合作,需要将代码和界面并行开发,故需运用模板技术。稍稍有些困惑是采用discuz、smarty一类的模板技术好呢还是采用wordpress一类的好呢。今天上课开小差时突然领悟,两者是有根本区别的。

discuz、smarty一类的模板是比较纯正的html文件,中间需要填充的数据一般用{标识符}表示,php中使用正则表达式分析然后输出。

wordpress的模板是也是html,但需要填充的数据直接采用php标签,如在显示文章点击量的地方写上<?php echo wp_views();?>。

看似区别不大,实质上想通了会发现,两个方案刚好是置标脚本语言的两种基本形式的演化。

大家应该能记得,一切的服务器脚本,无论是asp、php、jsp,都有两种基本但对立的写法。

一种是嵌入标签,如

<HEAD>
<TITLE>
<?php echo "This is the title";?>
</TITLE>
<BODY>
<?php echo "This is body";?>
</BODY>

另外一种就是完全页面输出,如

<?php
echo "n";
echo "n";
echo "This is the titlen";
echo "n";
echo "n";
echo "This is bodyn";
echo "";
?>

两种方法各有利弊,嵌入标签方便界面和逻辑分离,方便修改界面,但在程序逻辑方面并不好控制;完全输出很容易控制程序,但界面无法维护。

为了改善这种状况,同时也为了满足用户换主题的需求,模板技术出现了。

wordpress采用嵌入标签,为了弥补程序流程难以控制的问题,其采用了后台先准备好数据,然后include主题模板,模板中通过调用前面提供的接口函数来取得数据显示出来。

discuz、smarty是真正意义上的模板技术,即读取模板文件,然后通过正则表达式替换等处理,最后生成页面统统echo出来。

具体使用哪种方法,呵呵,还是看个人喜好和团队情况咯。

嵌入标签简单易用,开发方便,但要求界面开发人员稍稍懂一点php。

tpl模板技术灵活性高,界面与代码之间耦合度很低,界面人员也不用懂php,应该是很好的设计模式,但程序复杂,模板处理执行速度慢。

以上为个人见解,因为cache童鞋赶脚这个blog会变成音乐blog,特发此技术文给大家换换口味~

2 Replies to “简析wordpress与discuz、smarty模板技术的根本区别”

Leave a Reply

Your email address will not be published. Required fields are marked *