我正在使用PSR-7请求重构我的应用程序,使用Slim3作为路由器。在我的一些入口点上,我收到了来自外部应用程序的GET和POST HTTP请求。GET和POST都使用相同的参数名称。在旧代码中,一个简单的$_REQUEST
解决了这个问题,但我不想再使用超全局变量了。
为了获得GET请求的参数,我使用以下代码:
$parameters = $request->getQueryParams();
对于POST请求,我使用:
$parameters = $request->getParsedBody();
是否有PSR-7函数来解决问题,还是每次都必须使用array_merge()
?
Slim的请求对象有getParam()
和getParams()
,它们可以满足您的需要。但这些不是PSR-7的一部分。
在PSR-7本身中,请求接口上没有一个方法来执行您所要求的操作。
有些实现可能提供了它,但我会觉得这很奇怪。
如果可以的话,最简单的可能性可能是用一种新方法扩展您正在使用的ServerResponseInterface实现,该方法可以满足您的需要。
在Slim
中,您可以覆盖request
配置密钥,提供自己的请求对象