最近,我写了一个简单的 Web 应用程序。我目前有。
- 提供 html 标记和我需要的资源的静态页面
- 与服务器通信并在客户端呈现响应的 javascript 路由处理机制。
对于我需要操作的每个对象,服务器都提供了一个 php 脚本,在/app/object.php
该脚本中接受 POST 数据并返回 JSON 结果。
例如(不是实际响应):
POST /app/comments.php?a=add&page_id=43&author=A&text=Some%20Text
{"s":"OK"}
POST /app/comments.php?a=list&page_id=43
[{ "author": 'A', "text": "Some text"}, { "author": "B", "text": "Other text"}]
POST /app/users.php?a=list
["A", "B", "C"]
在引擎盖下 JSON api 是这样实现的:
//comments.php
require('init.php');
// start sessions, open database connections with data in config.php
switch(POST('a')){
case "list":
//.... retrieving data
echo json_encode($data)
break;
case "add":
//.... inserting data
echo '{"s":"OK"}';
break;
}
最大的对象有 7 个方法和 200 个(缩进良好,未压缩)的 LOC,而平均每个对象大约有 3 个方法。
我的一位开发者朋友建议用对象替换开关,使其“更简单”、“更可扩展”和“更可维护”。
坦率地说,我不知道这样的系统如何变得更简单(尤其是通过使用对象),但我很想知道其他开发人员的意见。
忽略在 PHP 中使用对象的性能影响,我应该使用基于类的方法吗?
如果是,我如何构建我的 JSON API 以使用对象,而不添加太多代码(从而降低项目的可维护性)?