我设置PHP的方式是,所有内容都转到一个名为Router的中心文件。路由器获取一个参数操作并调用该方法。
在Node.js中,可以获得相同方法的get版本和post版本。我想知道,在PHP中有这样的东西吗?
基本上我希望这种情况发生:
有一个加法方法。
第1页有添加按钮。添加按钮转到需要填写以添加项目的表单-获取请求。单击后,将调用add方法。
第2页有另一个添加按钮。添加按钮现在使用表单数据进行插入,并添加一个项目-发布请求。
现在,两者都调用相同的方法,但在文件中定义了该方法的get版本和post版本。
我想知道如果没有两个不同名称的方法,这是否可行。
您可以使用$_SERVER['REQUEST_METHOD']
来确定它是GET还是POST。一个原始的尝试可能看起来像这样:
function handle_request() {
$action = $_REQUEST['action'];
$verb = tolower($_SERVER['REQUEST_METHOD']);
// create string representation of the function to call, eg. post_add, get_add
call_user_func( $verb.'_.'$action, $_REQUEST);
}
}
如果您不想以不同的方式命名功能:
function add() {
if (tolower($_SERVER['REQUEST_METHOD') == 'post') {
// run the post version
} else {
// run the get version
}
}
实现REST API的完整示例可以在这里找到:
尝试使用$_REQUEST
。它是$_POST
或$_GET
的通用替代品。