*/ final class QueryDefaultsPlugin implements Plugin { /** * @var array */ private $queryParams = []; /** * @param array $queryParams Hashmap of query name to query value. Names and values must not be url encoded as * this plugin will encode them */ public function __construct(array $queryParams) { $this->queryParams = $queryParams; } /** * {@inheritdoc} */ public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise { $uri = $request->getUri(); parse_str($uri->getQuery(), $query); $query += $this->queryParams; $request = $request->withUri( $uri->withQuery(http_build_query($query)) ); return $next($request); } }