检查SESSION变量的值是否被归类为业务逻辑?

时间:2016-07-05 06:29:20

标签: php html 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()">';
?>

基本上,当用户登录时,我设置会话变量,指示该用户是否有权进行更改并添加记录。因此,当他们到达主页时,我使用此代码来决定是否显示我的添加和编辑按钮。

此代码是否违反逻辑/表示分离规则?如果是这样,我怎样才能实现分离?

我没有使用任何网络框架。

1 个答案:

答案 0 :(得分:10)

虽然View中的条件非常好,但您的View不应该尝试从任何来源获取任何数据。这不是它的作用,它应该只适用于您的Controller(或Presenter,取决于您的应用程序架构)提供的数据。您的视图不应该知道为什么背后的逻辑,以便在editadd模式之间切换。在订购时,它必须知道如何。在您的情况下,Controller应检查$_SESSION并决定显示哪种模式,添加或编辑您的视图,并将该决定传递给您的视图(即action_mode = edit|add),以便执行哑术

PS:我建议养成一个习惯,始终将代码块(甚至是单行)放在{}括号中。