Правильно ли я понимаю MVC? Знакомый попросил написать небольшую систему для управления лицензиями(сам он пишет на си). Я решил писать с использованием MVC. Вопрос такой - правильно ли я понял этот паттерн, вот пример авторизации на сайте:Controller_Login.phpmodel = new Model_Login(); $this->view = new View(); } else header('Location: ../main'); }
function action_logout() { $this->model->logout(); }
}Model_Login.phpreal_escape_string(htmlspecialchars($login)); $password = $link->real_escape_string(htmlspecialchars(md5(md5($password)))); $query = "SELECT user_id, email, user_group,name FROM dle_users WHERE name= '$login' AND password = '$password' LIMIT 1"; $sql = $link->query($query); if (mysqli_num_rows($sql) == 1) { $row = $sql->fetch_assoc(); if ($row['user_group'] == 7 || $row['user_group'] == 1) { Session::set('id',$row['user_id']); Session::set('email',$row['name']); Session::set('group',$row['user_group']); Session::set('login',$row['email']); header("Location: ../main"); } else{ $data['msg']= "Ваша группа не соответствует требованиям!"; } } else { $data['msg']= "Неверное имя пользователя или пароль. Проверьте правильность введенных данных!"; } $link->close(); return $data; } } Надо ли было создавать глобальные переменные в модели, и делать сеттеры и геттеры?
Да, вы правильно понимаете MVC (Model-View-Controller) паттерн. В вашем примере контроллер обрабатывает запросы пользователя, модель отвечает за бизнес-логику и взаимодействие с базой данных, а представление отвечает за отображение данных пользователю.
Относительно создания глобальных переменных в модели и использования сеттеров и геттеров - это зависит от вашего подхода к программированию. В вашем случае, в модели Model_Login вы используете массив данных $data для передачи информации между методами и передачи данных обратно в контроллер. В данном контексте, можно сказать, что использование глобальных переменных и сеттеров/геттеров не обязательно.
Однако, хорошей практикой при разработке объектно-ориентированных приложений является инкапсуляция данных, что позволяет обеспечить их безопасность и избежать прямого доступа извне. Таким образом, если вы хотите более строго контролировать доступ к данным в вашей модели, вы можете использовать сеттеры и геттеры.
В целом, ваше решение правильно с точки зрения MVC паттерна, но необходимость использования глобальных переменных и сеттеров/геттеров зависит от специфики вашего приложения и вашего подхода к программированию.
Да, вы правильно понимаете MVC (Model-View-Controller) паттерн. В вашем примере контроллер обрабатывает запросы пользователя, модель отвечает за бизнес-логику и взаимодействие с базой данных, а представление отвечает за отображение данных пользователю.
Относительно создания глобальных переменных в модели и использования сеттеров и геттеров - это зависит от вашего подхода к программированию. В вашем случае, в модели Model_Login вы используете массив данных $data для передачи информации между методами и передачи данных обратно в контроллер. В данном контексте, можно сказать, что использование глобальных переменных и сеттеров/геттеров не обязательно.
Однако, хорошей практикой при разработке объектно-ориентированных приложений является инкапсуляция данных, что позволяет обеспечить их безопасность и избежать прямого доступа извне. Таким образом, если вы хотите более строго контролировать доступ к данным в вашей модели, вы можете использовать сеттеры и геттеры.
В целом, ваше решение правильно с точки зрения MVC паттерна, но необходимость использования глобальных переменных и сеттеров/геттеров зависит от специфики вашего приложения и вашего подхода к программированию.