summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/CommaAggregator.php20
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/DuplicateAggregator.php22
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/PhpAggregator.php27
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php22
4 files changed, 91 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/CommaAggregator.php b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/CommaAggregator.php
new file mode 100644
index 0000000..4b4e49d
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/CommaAggregator.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Guzzle\Http\QueryAggregator;
+
+use Guzzle\Http\QueryString;
+
+/**
+ * Aggregates nested query string variables using commas
+ */
+class CommaAggregator implements QueryAggregatorInterface
+{
+ public function aggregate($key, $value, QueryString $query)
+ {
+ if ($query->isUrlEncoding()) {
+ return array($query->encodeValue($key) => implode(',', array_map(array($query, 'encodeValue'), $value)));
+ } else {
+ return array($key => implode(',', $value));
+ }
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/DuplicateAggregator.php b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/DuplicateAggregator.php
new file mode 100644
index 0000000..1bf1730
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/DuplicateAggregator.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Guzzle\Http\QueryAggregator;
+
+use Guzzle\Http\QueryString;
+
+/**
+ * Does not aggregate nested query string values and allows duplicates in the resulting array
+ *
+ * Example: http://test.com?q=1&q=2
+ */
+class DuplicateAggregator implements QueryAggregatorInterface
+{
+ public function aggregate($key, $value, QueryString $query)
+ {
+ if ($query->isUrlEncoding()) {
+ return array($query->encodeValue($key) => array_map(array($query, 'encodeValue'), $value));
+ } else {
+ return array($key => $value);
+ }
+ }
+}
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;
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php
new file mode 100644
index 0000000..72bee62
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Http/QueryAggregator/QueryAggregatorInterface.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Guzzle\Http\QueryAggregator;
+
+use Guzzle\Http\QueryString;
+
+/**
+ * Interface used for aggregating nested query string variables into a flattened array of key value pairs
+ */
+interface QueryAggregatorInterface
+{
+ /**
+ * Aggregate multi-valued parameters into a flattened associative array
+ *
+ * @param string $key The name of the query string parameter
+ * @param array $value The values of the parameter
+ * @param QueryString $query The query string that is being aggregated
+ *
+ * @return array Returns an array of the combined values
+ */
+ public function aggregate($key, $value, QueryString $query);
+}