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

前端之家收集整理的这篇文章主要介绍了PHP MVC最佳实践 – 将会话变量从控制器模型化或直接在模型中访问前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们的开发团队正在辩论一般的最佳实践:
最好直接从模型类中的函数访问会话变量,或者将控制器中的会话变量作为参数传递给模型类中的函数.看下面两个例子:

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

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’]作为方法的参数)导致一个更加解耦的类,因此更灵活.和它一起去

猜你在找的PHP相关文章