summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst')
-rw-r--r--vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst97
1 files changed, 97 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst b/vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst
new file mode 100644
index 0000000..a5c7fd3
--- /dev/null
+++ b/vendor/guzzle/guzzle/docs/iterators/guzzle-iterators.rst
@@ -0,0 +1,97 @@
+================
+Guzzle iterators
+================
+
+Guzzle provides several SPL iterators that can be used with other SPL iterators, including Guzzle resource iterators.
+Guzzle's ``guzzle/iterator`` component can also be used independently of the rest of Guzzle through Packagist and
+Composer: https://packagist.org/packages/guzzle/iterator
+
+ChunkedIterator
+---------------
+
+Pulls out multiple values from an inner iterator and yields and array of values for each outer iteration -- essentially
+pulling out chunks of values from the inner iterator.
+
+.. code-block:: php
+
+ use Guzzle\Iterator\ChunkedIterator;
+
+ $inner = new ArrayIterator(range(0, 8));
+ $chunkedIterator = new ChunkedIterator($inner, 2);
+
+ foreach ($chunkedIterator as $chunk) {
+ echo implode(', ', $chunk) . "\n";
+ }
+
+ // >>> 0, 1
+ // >>> 2, 3
+ // >>> 4, 5
+ // >>> 6, 7
+ // >>> 8
+
+FilterIterator
+--------------
+
+This iterator is used to filter values out of the inner iterator. This iterator can be used when PHP 5.4's
+CallbackFilterIterator is not available.
+
+.. code-block:: php
+
+ use Guzzle\Iterator\FilterIterator;
+
+ $inner = new ArrayIterator(range(1, 10));
+ $filterIterator = new FilterIterator($inner, function ($value) {
+ return $value % 2;
+ });
+
+ foreach ($filterIterator as $value) {
+ echo $value . "\n";
+ }
+
+ // >>> 2
+ // >>> 4
+ // >>> 6
+ // >>> 8
+ // >>> 10
+
+MapIterator
+-----------
+
+This iterator modifies the values of the inner iterator before yielding.
+
+.. code-block:: php
+
+ use Guzzle\Iterator\MapIterator;
+
+ $inner = new ArrayIterator(range(0, 3));
+
+ $mapIterator = new MapIterator($inner, function ($value) {
+ return $value * 10;
+ });
+
+ foreach ($mapIterator as $value) {
+ echo $value . "\n";
+ }
+
+ // >>> 0
+ // >>> 10
+ // >>> 20
+ // >>> 30
+
+MethodProxyIterator
+-------------------
+
+This decorator is useful when you need to expose a specific method from an inner iterator that might be wrapper
+by one or more iterator decorators. This decorator proxies missing method calls to each inner iterator until one
+of the inner iterators can fulfill the call.
+
+.. code-block:: php
+
+ use Guzzle\Iterator\MethodProxyIterator;
+
+ $inner = new \ArrayIterator();
+ $proxy = new MethodProxyIterator($inner);
+
+ // Proxy method calls to the ArrayIterator
+ $proxy->append('a');
+ $proxy->append('b');