Наша команда разработчиков обсуждает общую передовую практику: Лучше ли получить доступ к переменной сеанса непосредственно из функции класса модели или передать переменную сеанса из контроллера в качестве аргумента функции в классе модели. Посмотрите на два примера ниже:
Доступ к переменной сеанса непосредственно из класса модели для использования в запросе:
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");
}
}
Проводя его с моделью с контроллера, так что все данные, на которые делается ссылка, поступают из одной точки входа, которая является контроллером.
Что считается лучшей практикой?