当前位置: 主页 > 日志 > PHP >

Smaty,一个php模板引擎

分析ecshop源码,感觉头有点大,它是如何将程序和模板结合起来的呢?
一直想找一种能提高协同Web开发效率的方法。从美工设计前台到程序员设计后台,然后再由程序员交给美工,这样一个瀑布模式效率很低。而其维护起来也比较麻烦,美工可能因为一不小心删除了一句php代码从而导致整个页面程序的崩溃,程序员也可能因为不小心注释掉了个div,从而导致整个页面显示错位。需要一种能够将前台设计和后台编码分离的开发模式。美工和程序员可以并行地工作,美工修改页面布局不用关心程序逻辑,程序员不用关心页面布局。
昨晚听了黄师兄的一个报告,发现原来Smarty可以解决这个问题。而其我发现ecshop正是采用Smarty开发的。我要花了一上午的时间看了一下Smarty的参考文档,下午就可以随心所欲地修改ecshop了(有点夸张,但基本属实...)。

Smaty文档摘录(如下):

该如何使我的PHP脚本从设计中独立出来?这无疑地是在 PHP 邮件列表上所提问的最多的问题之一。虽然 PHP 被标榜为 "HTML 嵌入式语言", 在写过许多php和html混合式的工程之后,我产生了一个分离表单和内容的想法。而且,在许多公司里规划设计者的角色和程序设计者是分开的。于是,这样的一个模板解决方案产生了........ 

例如在我们公司,一个应用程序的开发流程如下:在提交计划文档之后,界面设计者[美工]制作了网站的外观模型,然后把它交给后台程序员。程序员使用PHP实现商业逻辑,同时使用外观模型做成基本架构。然后工程被返回到html页面设计者继续完善。就这样工程可能在后台程序员和页面设计者之间来来回回好几次。由于后台程序员不喜欢干预任何有关html标签,同时也不需要美工们和php鬼混在一起;美工设计者只需要配置文件,动态区块和其他的界面部分,不必要去接触那些错综复杂的php代码 。因此,这时候有一个很好的模板支持就显得很重要了。

Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人。例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现。在Smarty的程序里,这些被忽略了。模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等)。有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变)。这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。因此,程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑。

Smarty中文手册,Smarty教程,Smarty模板的入门教材
http://www.hbcms.com/main/smarty/index.html

[日志信息]

该日志于 2010-01-23 18:30 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “Smaty,一个php模板引擎” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部