Я новичок в 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), e.t.c. И каждая из этих операций передается в качестве ответственности классу контроллера 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? Любая помощь приветствуется.
Предположим, пользователь нажимает кнопку с именем «Войти». Теперь, когда элемент управления возвращается на сторону сервера со стороны клиента, мой объект $ upload_marks будет удален, и, следовательно, его состояние будет потеряно.
Когда пользователь запускает событие UploadMarks, создайте объект, который отслеживает состояние этого рабочего процесса. По окончании запроса сохраните текущее состояние рабочего процесса в базе данных. Всякий раз, когда пользователь снова нажимает на UploadMarks, извлекает состояние и возобновляет рабочий процесс.
Я искал о применении MVC и контроллера в PHP, но не нашел счастья в отношении моей проблемы. Должен ли я использовать MVC Framework?
Лучший совет, который я могу дать вам о MVC, — не беспокоиться об этом. В последние годы MVC привлекает много внимания. Он был раскручен, как будто это был какой-то святой Грааль, когда на самом деле это просто крошечная деталь в вашем приложении.
Других решений пока нет …