Я выполняю рефакторинг своего приложения с использованием запросов PSR-7, используя Slim3 в качестве маршрутизатора. На некоторых из моих точек входа у меня есть входящие HTTP-запросы GET и POST от внешних приложений. И GET, и POST используют одинаковые имена параметров. В старом коде простой $_REQUEST
решил проблему, но я не хочу больше использовать суперглобалы.
Для получения параметров GET-запроса я использую следующий код:
$parameters = $request->getQueryParams();
Для POST-запроса я использую:
$parameters = $request->getParsedBody();
Есть ли функция PSR-7 для решения проблемы, или я должен использовать array_merge()
каждый раз?
Объект запроса Слима имеет getParam()
а также getParams()
который делает то, что вы хотите. Они не являются частью PSR-7, хотя.
В самой PSR-7 в интерфейсе запроса нет метода, чтобы сделать то, что вы просите.
Вполне возможно, что некоторые реализации это обеспечивают, но я бы посчитал это странным.
Если вы можете, простейшей возможностью может быть расширение реализации ServerResponseInterface, которую вы используете, с новым методом, который делает то, что вам нужно.
В Slim
Вы могли бы сделать это, переопределяя request
ключ конфигурации, предоставляющий ваш собственный объект запроса