我正在构建一个系统,同时学习和实现 OOP 和 MVC。
我唯一不确定的是如何将 AJAX 合并到我的 MVC 结构中,所以我所采用的是一种控制器,它响应来自 AJAX 请求的不同“模式”,该请求访问并返回来自各种对象的结果我的系统。
这是执行此操作的好方法,还是我通过使用与系统中的其他控制器非常不同的控制器来打破 MVC 规则?
这是我的 AJAX“委托人”:
session_start() ;
function __autoload($classname)
{
include('/controllers/'.$classname.'.php') ;
}
// Deligator for contact operations.
if($_POST['mode'] == 'OPPORTUNITY_COUNT')
{
$contactManager = new ContactManager($_SESSION['userid']) ;
echo $contactManager->fetchOpportunityCount() ;
}
elseif($_POST['mode'] == 'PROSPECT_COUNT')
{
$contactManager = new ContactManager($_SESSION['userid']) ;
echo $contactManager->fetchProspectCount() ;
}
elseif($_POST['mode'] == 'CUSTOMER_COUNT')
{
$contactManager = new ContactManager($_SESSION['userid']) ;
echo $contactManager->fetchCustomerCount() ;
}
else
{
echo 'Error: Unknown mode.' ;
exit() ;
}
仅供参考这是我向路由器发送数据的方式:
socket.on('UPDATE_OPPORTUNITY_DATA', function(date){
$.ajax({data: 'mode=OPPORTUNITY_COUNT', success: function(data){
$('#opportunityCount').html(data) ;
shaker('#opportunityCount') ;
}
})
})