Как реализовать контроллер вариантов использования в проекте php(и javascript)
Я новичок в PHP и шаблонах проектирования. У меня возникли проблемы с реализацией контроллера вариантов использования в приложении, содержащем JavaScript и PHP. Я пытаюсь сделать проект менеджера по профилю студента. У меня есть сценарий использования "Upload Marks", в котором учитель загружает оценки учеников определенного раздела. И я возложил ответственность за системные операции в этом случае использования на класс с именем UploadMarksEventHandler. Я только упомянул методы и атрибуты, и они еще не должны производить вывод. Вот код:
class UploadMarksHandler{
private $section;
private $central_storage;
private $students = array();
private $cookie_name;
private isSelectSection = false;
function __construct(){
}
function login($teacher_id, $password){
$password_temp=$this.centr/al_storage.getTeacherPassword($teacher_id);
if($password_temp==$password){
//set cookies
setcookie($teacher_id, $password, time()+(60), "/");
}
else{
echo "incorrect password";
}
}
function selectSection($section){
//check cookies
$this->section=$this->central_storage.getSection($section);
$this->is_section_selected=true;
$this->students=$this->central_storage.getStudents($this->section);
}
function uploadMarks($student_id, $marks){
//check cookies
}
function display_students(){
//check cookies
//display $this->students
}
function endUseCase(){
//logout
//destroy central storage object
//destroy section object
//destroy students object
//destroy object
}
}
?>
Приведенный выше код предназначен для уровня логики приложения. Пользователь из уровня пользовательского интерфейса будет выполнять такие операции, как вход в систему ($teacher_id, $password), uploadMarks($student_id, $marks) и т. Д. И каждая из этих операций передается в качестве ответственности классу контроллера UploadMarksHandler. Проблема в том, что пользователь будет генерировать операции из уровня пользовательского интерфейса, который я планирую кодировать в jquery. Предположим, пользователь нажимает кнопку в браузере, которая называется "Загрузка меток". Для этого я буду использовать AJAX для создания объекта UploadMarksHandler. Я сделаю это в файле main.php, который будет использоваться для отображения уровня пользовательского интерфейса на уровне логики приложения.
$upload_marks = new UploadMarksHandler(); //this is in main.php, which is called through AJAX
После создания экземпляра объекта $upload_marks, который отвечает за обработку сценария использования "Upload Marks", мое приложение должно прослушать следующую системную операцию на уровне пользовательского интерфейса. Предположим, пользователь нажимает кнопку с именем "Логин". Теперь, когда элемент управления перемещается обратно на сторону сервера со стороны клиента, мой объект $upload_marks будет удален, и, следовательно, его состояние будет потеряно.
Я искал о применении MVC и контроллера в PHP, но не нашел счастья в отношении моей проблемы. Должен ли я использовать MVC Framework? Любая помощь приветствуется.
1 ответ
Предположим, пользователь нажимает кнопку с именем "Логин". Теперь, когда элемент управления перемещается обратно на сторону сервера со стороны клиента, мой объект $ upload_marks будет удален, и, следовательно, его состояние будет потеряно.
Когда пользователь запускает событие UploadMarks, создайте объект, который отслеживает состояние этого рабочего процесса. В конце запроса сохраните текущее состояние рабочего процесса в базе данных. Всякий раз, когда пользователь снова нажимает на UploadMarks, извлекает состояние и возобновляет рабочий процесс.
Я искал о применении MVC и контроллера в PHP, но не нашел счастья в отношении моей проблемы. Должен ли я использовать MVC Framework?
Лучший совет, который я могу дать вам о MVC - не беспокоиться об этом. В последние годы MVC привлекает много внимания. Он был раскручен, как будто это был какой-то святой Грааль, когда на самом деле это просто маленькая деталь в вашем приложении.