今天用smarty帮谷歌(人人帐号)同学写了个东西,应该是什么机构的测试吧。总体感觉用smarty确实比之前的开发模式更方便。这也坚定了我以后自己构建smarty思想模板的决心。
smarty的目的是实现前后台分离。因为在正式的web开发场合下,多数采用多人开发模式,这就要求分工明确,才能保证开发效率及质量。我曾尝试过按模块分工,这种方式比较适合各模块界限鲜明,工作模式简单的开发,个人认为对于RIA(Rich Internet Application)横行的今天,这种开发模式几本没有生存空间。除非各开发者之间默契超强,或者这次开发只由一人完成。更理想的情况是,按照前后台分工,对于后台再具体细分模块。因为大多数的web开发团队里,各个成员要么是美工很强,而对后台程序感觉较差,或者是后台程序能力很强而页面美工做不好(也许开发者自己认为页面很美观,比如我。而事实上开发者的审美观不能很好的满足用户)。Smarty就是适合这种分工方式的模板。Smarty不是一种MVC架构。
在Smarty里,页面美工人员可以专注于页面布局,书写纯html代码,在需要数据处用smarty默认的或个人配置的定界符标识动态变量。当然多数情况下,html是很难预测页面具体由多少个样式重复的不同动态内容,因此Smarty在前端提供了foreach,for,if等流控关键字。事实上,前端开发者也只需用到如上的几个关键字。其余的完全可以交由后台程序员在php文件中对形如{$xx}的变量进行赋值等操作。
事实上,如果后台开发着有良好的前端布局能力,也完全可以参与到前台布局中,只需要对前端标定的变量进行赋值即可。但这不符合前后台分离开发的根本需求,因此不推荐。不过这个事实说明,smarty开发是相对灵活的。而对于后台php人员,其程序量并没有本质变化,后台人员仅需要对smarty提供的smarty类的成员进行简单理解,并习惯于用smarty->assign方式对变量赋值即可。
最后一点,smarty是基于php的。
Leave a Reply