我是 PHP 和设计模式的初学者。我在包含 javascript 和 php 的应用程序中实现用例控制器时遇到问题。我正在尝试制作一个学生档案管理器的项目。我有一个“上传分数”的用例,教师上传学生在特定部分的分数。我已经将这个用例中系统操作的职责分配给了一个名为 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
}
}
?>
上面的代码是针对应用逻辑层的。UI 层的用户将执行诸如 login($teacher_id, $password)、uploadMarks($student_id, $marks) 等操作,并且这些操作中的每一个都作为控制器类 UploadMarksHandler 的职责。问题是,用户将从 UI 层生成操作,我打算在 jquery 中对其进行编码。假设用户在浏览器上按下了一个名为“Upload Marks”的按钮。为此,我将使用 AJAX 创建一个 UploadMarksHandler 对象。我将在 main.php 文件中执行此操作,该文件将用于将 UI 层映射到应用程序逻辑层。
$upload_marks = new UploadMarksHandler(); //this is in main.php, which is called through AJAX
在实例化负责处理“上传标记”用例的 $upload_marks 对象后,我的应用程序应该在 UI 层监听下一个系统操作。假设用户按下一个名为“登录”的按钮。现在,当控件从客户端移回服务器端时,我的 $upload_marks 对象将被删除,因此其状态将丢失。
我搜索了有关在 PHP 中应用 MVC 和控制器的信息,但没有发现关于我的问题的运气。我应该使用 MVC 框架吗?任何帮助表示赞赏。