我已经建立了一个聊天插件,包括chat.php控制器,chat_model.php,chat_view.php和chat.js.我也在使用jQuery对控制器执行AJAX请求。
聊天工作正常,可以作为自己的网页(带有专用的控制器+视图),但最终我希望聊天功能可以在其他控制器中访问,并且能够在其他网页中查看,更加独立/模块化方式。我只是不确定MVC的结构方式是什么样的。
我应该将聊天控制器转换为库,以便其他控制器可以访问它吗?如果是这样,那对我的AJAX请求意味着什么?我是否能够向库文件发出AJAX请求,还是需要保留一个(较小的)聊天控制器作为这些AJAX请求和库之间的中间人?
如果不是库,有没有办法使用更模块化的控制器,他们可以合作并被其他控制器调用?
答案 0 :(得分:0)
您需要将聊天控制器更改为库类构造函数并将模型更改为该聊天库的类主体,并在应用程序中自动加载该库,然后在要显示聊天的控制器中获取聊天视图,以及将其分配给变量以在当前控制器的视图中使用。像:
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的格式访问它们。