NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class ResourceIterator

Class that holds an event dispatcher

  Guzzle\Common\AbstractHasDispatcher implements Guzzle\Common\HasDispatcherInterface
  Guzzle\Service\Resource\ResourceIterator implements Guzzle\Service\Resource\ResourceIteratorInterface

### Direct known subclasses

`Aws\Common\Iterator\AwsResourceIterator`

### Indirect known subclasses

`Aws\Ec2\Iterator\DescribeInstancesIterator`, `Aws\S3\Iterator\ListBucketsIterator`, `Aws\S3\Iterator\ListMultipartUploadsIterator`, `Aws\S3\Iterator\ListObjectsIterator`, `Aws\S3\Iterator\ListObjectVersionsIterator`

Abstract
Namespace: Guzzle\Service\Resource
Located at Guzzle/Service/Resource/ResourceIterator.php

## Methods summary

- `public static` `getAllEvents ( )`

  Get a list of all of the events emitted from the class

- `public` `__construct ( Guzzle\Service\Command\CommandInterface $command, array $data = array() )`
- `public` `toArray ( )`

  Get all of the resources as an array (Warning: this could issue a large number of requests)

- `public` `setLimit ( int $limit )`

  Attempt to limit the total number of resources returned by the iterator.

- `public` `setPageSize ( int $pageSize )`

  Attempt to limit the total number of resources retrieved per request by the iterator.

- `public` `get ( string $key )`

  Get an option from the iterator

- `public` `set ( string $key, mixed $value )`

  Set an option on the iterator

- `public` `current ( )`
- `public` `key ( )`
- `public` `count ( )`
- `public` `getRequestCount ( )`

  Get the total number of requests sent

- `public` `rewind ( )`

  Rewind the Iterator to the first element and send the original command

- `public` `valid ( )`
- `public` `next ( )`
- `public` `getNextToken ( )`

  Retrieve the NextToken that can be used in other iterators.

- `protected` `calculatePageSize ( )`

  Returns the value that should be specified for the page size for a request that will maintain any hard limits, but still honor the specified pageSize if the number of items retrieved + pageSize < hard limit

- `protected` `resetState ( )`

  Reset the internal state of the iterator without triggering a rewind()

- `abstract protected` `sendRequest ( )`

  Send a request to retrieve the next page of results. Hook for subclasses to implement.

## Methods detail

# `public static array`
`getAllEvents( )`

Get a list of all of the events emitted from the class

#### Returns

`array`

#### Overrides

`Guzzle\Common\AbstractHasDispatcher::getAllEvents`

#### Implementation of

`Guzzle\Common\HasDispatcherInterface::getAllEvents()`
# `public`
`__construct( `Guzzle\Service\Command\CommandInterface` $command, array $data = array() )`

#### Parameters

$command
  ``Guzzle\Service\Command\CommandInterface``
  $command Initial command used for iteration
$data
  `array`
  $data Associative array of additional parameters. You may specify any number of custom options for an iterator. Among these options, you may also specify the following values: - limit: Attempt to limit the maximum number of resources to this amount - page_size: Attempt to retrieve this number of resources per request

# `public array`
`toArray( )`

Get all of the resources as an array (Warning: this could issue a large number of requests)

#### Returns

`array`

#### Implementation of

`Guzzle\Common\ToArrayInterface::toArray()`
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`setLimit( integer $limit )`

Attempt to limit the total number of resources returned by the iterator.

You may still receive more items than you specify. Set to 0 to specify no limit.

#### Parameters

$limit
  `integer`
  $limit Limit amount

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``

#### Implementation of

`Guzzle\Service\Resource\ResourceIteratorInterface::setLimit()`
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`setPageSize( integer $pageSize )`

Attempt to limit the total number of resources retrieved per request by the iterator.

The iterator may return more than you specify in the page size argument depending on the service and underlying command implementation. Set to 0 to specify no page size limitation.

#### Parameters

$pageSize
  `integer`
  $pageSize Limit amount

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``

#### Implementation of

`Guzzle\Service\Resource\ResourceIteratorInterface::setPageSize()`
# `public mixed|null`
`get( string $key )`

Get an option from the iterator

#### Parameters

$key
  `string`
  $key Key of the option to retrieve

#### Returns

`mixed|null`
Returns NULL if not set or the value if set

#### Implementation of

`Guzzle\Service\Resource\ResourceIteratorInterface::get()`
# `public `Guzzle\Service\Resource\ResourceIterator``
`set( string $key, mixed $value )`

Set an option on the iterator

#### Parameters

$key
  `string`
  $key Key of the option to set
$value
  `mixed`
  $value Value to set for the option

#### Returns

``Guzzle\Service\Resource\ResourceIterator``

#### Implementation of

`Guzzle\Service\Resource\ResourceIteratorInterface::set()`
# `public`
`current( )`

#### Implementation of

`Iterator::current()`
# `public`
`key( )`

#### Implementation of

`Iterator::key()`
# `public`
`count( )`

#### Implementation of

`Countable::count()`
# `public integer`
`getRequestCount( )`

Get the total number of requests sent

#### Returns

`integer`
# `public`
`rewind( )`

Rewind the Iterator to the first element and send the original command

#### Implementation of

`Iterator::rewind()`
# `public`
`valid( )`

#### Implementation of

`Iterator::valid()`
# `public`
`next( )`

#### Implementation of

`Iterator::next()`
# `public string`
`getNextToken( )`

Retrieve the NextToken that can be used in other iterators.

#### Returns

`string`
Returns a NextToken

#### Implementation of

`Guzzle\Service\Resource\ResourceIteratorInterface::getNextToken()`
# `protected integer`
`calculatePageSize( )`

Returns the value that should be specified for the page size for a request that will maintain any hard limits, but still honor the specified pageSize if the number of items retrieved + pageSize < hard limit

#### Returns

`integer`
Returns the page size of the next request.
# `protected`
`resetState( )`

Reset the internal state of the iterator without triggering a rewind()

# `abstract protected array`
`sendRequest( )`

Send a request to retrieve the next page of results. Hook for subclasses to implement.

#### Returns

`array`
Returns the newly loaded resources

### Methods inherited from Guzzle\Common\AbstractHasDispatcher

`addSubscriber()`, `dispatch()`, `getEventDispatcher()`, `setEventDispatcher()`

### Magic methods summary

## Properties summary

`protected `Guzzle\Service\Command\CommandInterface`` | $command | # Command used to send requests
`protected `Guzzle\Service\Command\CommandInterface`` | $originalCommand | # First sent command
`protected array` | $resources | # Currently loaded resources
`protected integer` | $retrievedCount | # Total number of resources that have been retrieved
`protected integer` | $iteratedCount | # Total number of resources that have been iterated
`protected string` | $nextToken | # NextToken/Marker for a subsequent request
`protected integer` | $pageSize | # Maximum number of resources to fetch per request
`protected integer` | $limit | # Maximum number of resources to retrieve in total
`protected integer` | $requestCount | # Number of requests sent
`protected array` | $data | # Initial data passed to the constructor
`protected boolean` | $invalid | # Whether or not the current value is known to be invalid

### Properties inherited from Guzzle\Common\AbstractHasDispatcher

`$eventDispatcher`