加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP MVC最佳实践 – 将会话变量从控制器模型化或直接在模型中访

发布时间:2020-12-13 16:32:37 所属栏目:PHP教程 来源:网络整理
导读:我们的开发团队正在辩论一般的最佳实践: 最好直接从模型类中的函数访问会话变量,或者将控制器中的会话变量作为参数传递给模型类中的函数.看下面两个例子: 直接从模型类访问会话变量以在查询中使用: class MyModel { public function getUserPrefs($userID
我们的开发团队正在辩论一般的最佳实践:
最好直接从模型类中的函数访问会话变量,或者将控制器中的会话变量作为参数传递给模型类中的函数.看下面两个例子:

直接从模型类访问会话变量以在查询中使用:

class MyModel {
    public function getUserPrefs($userID) {
        $this->query("SELECT * FROM my_table WHERE id=$_SESSION['userID']");
    }
}

或者将会话变量从控制器传递给模型类中的函数作为函数参数:

class MyController {
    public function displayUsers() {
        $this->model->getUserPrefs($_SESSION['userID']);
    }
}

class MyModel {
    public function getUserPrefs($userID) {
        $this->query("SELECT * FROM my_table WHERE id=$userID");
    }
}

将控制器传递给模型的原因是所引用的所有数据都来自一个入口点,即控制器.

什么是公认的更好的做法?

第二个版本(通过$_SESSION [‘userId’]作为方法的参数)导致一个更加解耦的类,因此更灵活.和它一起去

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读