Как реализовать контроллер вариантов использования в проекте 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 привлекает много внимания. Он был раскручен, как будто это был какой-то святой Грааль, когда на самом деле это просто маленькая деталь в вашем приложении.

Другие вопросы по тегам