php - 检查 SESSION 变量的值是否属于业务逻辑?

标签 php html optimization

我正在开发我的网络应用程序。 我有这段代码:

<?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()">';
?>

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

这段代码是否打破了逻辑/表现分离的规则?如果是这样,我怎样才能实现分离?

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

最佳答案

虽然 View 中的条件非常好,但您的 View 不应尝试自行从任何来源获取任何数据。这不是它的角色,它应该只对你的 Controller (或 Presenter,取决于你的应用程序架构)提供给它的数据起作用。您的 View 不应该不知道为什么何时editadd 模式之间切换背后的逻辑。它只需要在收到命令时知道如何去做。在你的情况下, Controller 应该检查 $_SESSION 并决定什么模式,添加或编辑你的 View 应该显示并将该决定传递给你的 View (即 action_mode = edit|add) 用于哑执行。

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

关于php - 检查 SESSION 变量的值是否属于业务逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196579/

相关文章:

html - 为响应式设计缩放 iframe 仅 CSS

html - 在一个 div 中居中放置一个表单,并在右侧显示另一个缩进的 div

MySQL 查询优化消除不必要的连接

python - 在 Python 3 中复制属性的更优雅的方式

php - 在 PDO 中使用 try 和 catch 的最佳方法是什么

php - 创建相互依赖的对象

c# - 是否有与 PHP 函数 `parse_str` 等效的 C# ?

php - HashMap 像名称

css - html 中产品的图库 View

python - 有没有更快的方法将任意大整数转换为大端字节序列?