Con*_*hop 7 html php optimization
我正在开发一个Web应用程序.我有这段代码:
<?php
if($_SESSION['add'] == 1)
echo '<input type="button" name="add" id="add" value="Add" onclick="add()" >';
if($_SESSION['edit'] == 1)
echo '<input type="button" name="edit" id="edit" value="Edit" onclick="edit()">';
?>
Run Code Online (Sandbox Code Playgroud)
基本上,当用户登录时,我设置会话变量,指示该用户是否有权进行更改并添加记录.因此,当他们到达主页时,我使用此代码来决定是否显示我的添加和编辑按钮.
这段代码是否打破了逻辑/表示分离的规则?如果是这样,我怎样才能实现分离?
我没有使用任何Web框架.
Mar*_*ski 10
虽然View中的条件完全正常,但您的View不应尝试自己从任何源获取任何数据.这不是它的作用,它应该只适用于您的Controller(或Presenter,取决于您的应用程序架构)提供的数据.您的视图不应该知道为什么以及何时切换edit
和add
模式背后的逻辑 .只有在订购时才必须知道如何做到这一点.在您的情况下,Controller应检查$_SESSION
并决定显示哪种模式,添加或编辑您的View,并将该决定传递给您的View(即action_mode
= edit|add
)以执行哑术.
PS:我建议做一个习惯,总是把代码块(甚至单行)中{
,}
括号中.