PSR7请求:在Slim3中获取类似$_Request的请求数据


PSR7 Request: Get request data like $_REQUEST in Slim3

我正在使用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配置密钥,提供自己的请求对象