如何在php(和javascript)项目中实现用例控制器


How to implement use case controller in a php(and javascript) project

我是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层的用户将执行诸如登录($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"用例的$upload_marks对象之后,我的应用程序应该在UI层中侦听下一个系统操作。假设用户按下一个名为"Login"的按钮。现在,当控件从客户端移回服务器端时,我的$upload_marks对象将被删除,因此其状态将丢失。

我已经搜索了关于在PHP中应用MVC和控制器的信息,但没有发现我的问题。我应该使用MVC框架吗?感谢您的帮助。

假设用户按下一个名为"Login"的按钮。现在,当控件从客户端移回服务器端时,我的$upload_marks对象将被删除,因此其状态将丢失。

当用户触发UploadMarks事件时,创建一个跟踪该工作流状态的对象。在请求结束时,将工作流的当前状态持久保存到数据库中。每当用户再次单击UploadMarks时,获取状态并恢复工作流。

我已经搜索了关于在PHP中应用MVC和控制器的信息,但没有发现我的问题。我应该使用MVC框架吗?

关于MVC,我能给你的最好建议是不要担心它。MVC在最近几年受到了很多不必要的关注。当它只是你应用程序中的一个小细节时,它被炒作得像圣杯一样。