Skip to content

Commit 75dbe02

Browse files
author
Martin Brecht-Precht
committed
Added the setQueryParametersFromArray method.
1 parent 02e1057 commit 75dbe02

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Diff for: src/Url.php

+27
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,33 @@ public function setQueryParameters($queryParameters)
307307
return $this;
308308
}
309309

310+
/**
311+
* @param mixed[] $queryParameters
312+
* @return $this
313+
*/
314+
public function setQueryParametersFromArray(array $queryParameters)
315+
{
316+
if (is_null($queryParameters)) {
317+
$this->clearQueryParameters();
318+
return $this;
319+
}
320+
if (!is_array($queryParameters)) {
321+
$argumentType = (is_object($queryParameters)) ? get_class($queryParameters) : gettype($queryParameters);
322+
throw new \InvalidArgumentException('Expected query parameters as array; got ' . $argumentType);
323+
}
324+
foreach ($queryParameters as $queryParameter) {
325+
if (!is_scalar($queryParameter)) {
326+
$argumentType = (is_object($queryParameter)) ? get_class($queryParameter) : gettype($queryParameter);
327+
throw new \InvalidArgumentException('Expected query parameter values as scalar; found ' . $argumentType);
328+
}
329+
}
330+
$this->clearQueryParameters();
331+
foreach ($queryParameters as $queryParameterKey => $queryParameterValue) {
332+
$this->queryParameters[] = new QueryParameter($queryParameterKey, $queryParameterValue);
333+
}
334+
return $this;
335+
}
336+
310337
/**
311338
* @param QueryParameterInterface $queryParameter
312339
* @return $this

0 commit comments

Comments
 (0)