【发布时间】:2012-04-09 05:49:31
【问题描述】:
我有下一个问题。
我有一个页面:
- 它从数据库中读取会话并从数据库中读取所有内容。
- “应用”逻辑。
- 最后是作为模板文件 (.tpl) 的演示文稿
而且它有效。模板文件是一个带有网格和表单的网络,我可以在其中对数据库进行 CRUDL,因此它可以根据访问它的用户而有所不同。例如,如果当前用户是管理员,那么应该显示所有选项,如果是受限用户,那么应该隐藏一些字段。
但是,我不知道下一步该怎么做。在业务逻辑和模板之间进行交互的更好方式是什么?
a) 使用带有逻辑的模板(Presentation Logic)。例如,如果用户(正在访问它)的权限有限,则逻辑删除按钮“保存”:
...
{if current_user!=limited}
<input type='button' value='save' />
..
{endif}
...
- 优点是它只使用一个模板。
- 缺点是它向表示层添加了逻辑。
b) 使用不同的模板文件并在业务逻辑中决定加载哪个模板。
if ($current_user!="limited") {
load_template("template_complete.tpl");
} else {
load_template("template_limited.tpl");
}
- 专业人士是模板更清晰(无逻辑)
- 缺点是冗长,需要不同的模板。
还是存在其他解决方案?
【问题讨论】:
-
给希望编辑标签的人的说明。整个话题是关于
presentation logic。它是business logic标签,可以安全地删除,但不是演示文稿之一。谢谢。 -
你能找到一些可以用它标记的其他问题吗?也不清楚它与模板化或 MVC 所暗示的关注点分离有何不同。
标签: php model-view-controller templates business-logic