这是一个创建于 5092 天前的主题,其中的信息可能已经有所发展或是发生改变。
以前做网页的时候最经常遇到的问题的是模板的重复,特别是对于一个页面有多个动态生成的区域的时候,一个不恰当的例子,比如v2ex,如果我做首页列表/个人回复/以及其他一堆页面的时候,其实我对这个页面的功能重点感兴趣,首页我关心的只是帖子标题列表,于是理想状态是我做完一堆首页帖子列表的数据处理的时候只需要把这些信息塞到模板里面显示就好了,但是考虑到有玩家登陆机制,于是我又必须在每个功能里面把该玩家的信息取出来,也塞到模板里面去处理,这样才能实现首页列表的时候用户才能在导航栏看到自己的id等信息,这些信息异常繁杂而且大多数情况下多个页面其实用的是同一个布局,不知道各位是怎么解决这个问题?之前看了一些框架,有一些方法比如包装成component之类,总觉得太繁杂,一些比较流行的框架里面是如何解决这个问题的呢?比如django,rails?如果没讲清楚我用代码表示一下把
function actionPostList(){
$postList = Post::findAll();
$tpl->assign($postList);
//以下都是我不想做的
$tpl->assign($userInfo);
$tpl->assign($timeInfo);
$tpl->assign($dynamicNaviLink);
}
function actionReplyList(){
$replies = Reply::find($id);
$tpl->assign($replies);
//etc
$tpl->assign($userInfo);
$tpl->assign($timeInfo);
$tpl->assign($dynamicNaviLink);
}
这两个页面最后的布局其实也大致一样,
1 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
holystrike 2011-01-19 09:58:05 +08:00 via iPhone
template-inheritence two-step view pattern 可以看看symfony作者写的twig template engine
|