近日了解了下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,特发此技术文给大家换换口味~
你又把老本行拾起来了?
nonono,我要做作业而已。。