想问问关于模板的问题

2011-01-19 01:58:35 +08:00
 Natsuki
以前做网页的时候最经常遇到的问题的是模板的重复,特别是对于一个页面有多个动态生成的区域的时候,一个不恰当的例子,比如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);

}



这两个页面最后的布局其实也大致一样,
4932 次点击
所在节点    PHP
1 条回复
holystrike
2011-01-19 09:58:05 +08:00
template-inheritence
two-step view pattern
可以看看symfony作者写的twig template engine

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/7398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX