Codeigniter:我应该如何构建我的聊天插件,以便它可以加载到其他页面中


Codeigniter: How should I structure my chat plugin so that it can be loaded in other pages?

我构建了一个聊天插件,由聊天.php控制器,chat_model.php,chat_view.php和聊天.js组成。我还使用 jQuery 对控制器执行 AJAX 请求。

聊天作为

自己的网页(具有专用控制器+视图)工作正常,但最终我希望聊天功能正常,并且可以在其他控制器中访问,并能够以更独立/模块化的方式在其他网页中查看。我只是不确定MVC的结构方式会是什么样子。

我是否应该将聊天控制器转换为库,以便其他控制器可以访问它?如果是这样,这对我的 AJAX 请求意味着什么?我是否能够向库文件发出 AJAX 请求,或者我是否仍然需要保留一个(较小的)聊天控制器作为这些 AJAX 请求和库之间的中间人?

如果不是库,有没有办法更模块化地使用控制器,它们可以协作并被其他控制器调用?

您需要将聊天控制器更改为库类构造函数,并将模型更改为该聊天库的类主体,并在应用程序中自动加载该库,然后在要显示聊天的控制器中获取聊天视图,并将其分配给要在当前控制器视图中使用的变量。 如:

class myChat {
    public __construct(){
        // controller codes here
    }
    public saveChatMessage($message){
        // model codes here
    }
}

然后对于视图,

//in any controller you want to display the chat
$this->load->view("controller.php");
$this->load->view("chat.php");

$data["chatview"] = $this->load->view("chat.php","",true);
$this->load->view("controller.php",$data);

对于后端 AJAX 响应程序,您需要一个控制器才能以基于 URL 的格式访问它们。