我们的开发团队正在辩论一般的最佳实践:
最好直接从模型类中的函数访问会话变量,或者将控制器中的会话变量作为参数传递给模型类中的函数.看下面两个例子:
最好直接从模型类中的函数访问会话变量,或者将控制器中的会话变量作为参数传递给模型类中的函数.看下面两个例子:
直接从模型类访问会话变量以在查询中使用:
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’]作为方法的参数)导致一个更加解耦的类,因此更灵活.和它一起去