Запрос PSR7: получение данных запроса, таких как $ _REQUEST в Slim3

Я выполняю рефакторинг своего приложения с использованием запросов PSR-7, используя Slim3 в качестве маршрутизатора. На некоторых из моих точек входа у меня есть входящие HTTP-запросы GET и POST от внешних приложений. И GET, и POST используют одинаковые имена параметров. В старом коде простой $_REQUEST решил проблему, но я не хочу больше использовать суперглобалы.

Для получения параметров GET-запроса я использую следующий код:

$parameters = $request->getQueryParams();

Для POST-запроса я использую:

$parameters = $request->getParsedBody();

Есть ли функция PSR-7 для решения проблемы, или я должен использовать array_merge() каждый раз?

0

Решение

Объект запроса Слима имеет getParam() а также getParams() который делает то, что вы хотите. Они не являются частью PSR-7, хотя.

3

Другие решения

В самой PSR-7 в интерфейсе запроса нет метода, чтобы сделать то, что вы просите.

Вполне возможно, что некоторые реализации это обеспечивают, но я бы посчитал это странным.

Если вы можете, простейшей возможностью может быть расширение реализации ServerResponseInterface, которую вы используете, с новым методом, который делает то, что вам нужно.

В Slim Вы могли бы сделать это, переопределяя request ключ конфигурации, предоставляющий ваш собственный объект запроса

2

По вопросам рекламы [email protected]