PHP MVC 最佳实践 - 将会话变量从控制器传递到模型类或直接在模型中访问
2022-08-31 01:03:25
我们的开发团队正在讨论一个一般的最佳实践:直接从模型类中的函数访问会话变量,还是将会话变量作为参数从控制器传递给模型类中的函数更好。请看下面的两个示例:
直接从模型类访问会话变量以在查询中使用:
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");
}
}
将其从控制器传递到模型的原因是,引用的所有数据都来自一个入口点,即控制器。
什么是公认的更好的做法?