summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php
new file mode 100644
index 0000000..133ea2b
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Guzzle\Http\QueryAggregator;
+
+use Guzzle\Http\QueryString;
+
+/**
+ * Aggregates nested query string variables using PHP style []
+ */
+class PhpAggregator implements QueryAggregatorInterface
+{
+ public function aggregate($key, $value, QueryString $query)
+ {
+ $ret = array();
+
+ foreach ($value as $k => $v) {
+ $k = "{$key}[{$k}]";
+ if (is_array($v)) {
+ $ret = array_merge($ret, self::aggregate($k, $v, $query));
+ } else {
+ $ret[$query->encodeValue($k)] = $query->encodeValue($v);
+ }
+ }
+
+ return $ret;
+ }
+}