我正在编写一个丰富的 JS 应用程序,我想就如何构建 JS/PHP 提出广泛的建议。我不知道如何分解这个问题,如果它问的东西太多,对不起。我正在遭受信息过载的痛苦!
我希望 JS 会从单个 PHP 文件中请求 JSON 对象。我想要一个最小但有效的 PHP 模式来响应简洁有效的请求。也许 JS 会调用类似模型的对象来查询数据库并将 JSON 返回给客户端。
什么是 PHP 方面的好模式?我将一个 PHP 文件拼凑在一起,该文件杂乱地包含一个大型 switch 语句,用于解析来自客户端的指令以及相关数据。一个请求可能包含多个指令。例如,javascript 发送一个请求:
$.ajax({
url: '/ajax.php', dataType: 'json',
data: {instructions: [{
instruction: "newPerson",
data: {
name: person.name,
email: person.email
city: person.city
}
}]},
success: callback, error: ajaxFail
});
回调将是一个全局处理程序,处理 PHP 从该请求或其他请求返回的任何对象。例如,上面可能会收到一个带有由 PHP 生成的人员 ID 插入数据库的新人员对象,以及一个带有其 ID 的城市对象。其他请求也可能返回这些对象,所以单个处理程序有意义吗?(一个问题是 javascript 如何将返回的对象与提交的插入相关联)
我对我的 PHP 页面代码感到羞愧,但它看起来像这样:
$return = array();
$instructions = $_REQUEST['instructions'];
foreach ($instructions as $instruction){
switch($instruction['instruction']){
case 'findPoeple':
$data = $instruction['data'];
$res = DB::query("select player from person where player like '%". DB::esc($str) ."%'");
$return['players'] = array();
while ($row = DB::fetch($res)){
$return['players'][] = $row['player'];
}
break;
case 'loadAllPeople':
// similar code
break;
case 'newPerson':
// similar code
break;
default:
die("command '$command' not recognised");
break;
}
}
echo json_encode($return);
显然,这有太多错误,无法说出要更改的内容!但我已经相当清楚我要寻找的最终结果是什么。谁能指出我简洁的模式,专门展示这种使用 OOP 以一种可敬的方式实现的 JS/PHP 方法?
MVC 对我来说是有意义的,直到丰富的 JS 应用程序成为可能,边界似乎非常模糊,任何启示都是上帝赐予的,我现在从头开始。
谢谢!