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

# Class CompositeFactory

Composite factory used by a client object to create command objects utilizing multiple factories

  Guzzle\Service\Command\Factory\CompositeFactory implements IteratorAggregate, Countable, Guzzle\Service\Command\Factory\FactoryInterface

Namespace: Guzzle\Service\Command\Factory
Located at Guzzle/Service/Command/Factory/CompositeFactory.php

## Methods summary

- `public static` `getDefaultChain ( Guzzle\Service\ClientInterface $client )`

  Get the default chain to use with clients

- `public` `__construct ( array $factories = array() )`
- `public` `add ( Guzzle\Service\Command\Factory\FactoryInterface $factory, string|FactoryInterface $before = null )`

  Add a command factory to the chain

- `public` `has ( FactoryInterface|string $factory )`

  Check if the chain contains a specific command factory

- `public` `remove ( string|FactoryInterface $factory = null )`

  Remove a specific command factory from the chain

- `public` `find ( string|FactoryInterface $factory )`

  Get a command factory by class name

- `public` `factory ( string $name, array $args = array() )`

  Create a command using the associated command factories

- `public` `count ( )`
- `public` `getIterator ( )`

## Methods detail

# `public static `Guzzle\Service\Command\Factory\CompositeFactory``
`getDefaultChain( `Guzzle\Service\ClientInterface` $client )`

Get the default chain to use with clients

#### Parameters

$client
  ``Guzzle\Service\ClientInterface``
  $client Client to base the chain on

#### Returns

``Guzzle\Service\Command\Factory\CompositeFactory``
# `public`
`__construct( array $factories = array() )`

#### Parameters

$factories
  `array`
  $factories Array of command factories

# `public `Guzzle\Service\Command\Factory\CompositeFactory``
`add( `Guzzle\Service\Command\Factory\FactoryInterface` $factory, string|`Guzzle\Service\Command\Factory\FactoryInterface` $before = null )`

Add a command factory to the chain

#### Parameters

$factory
  ``Guzzle\Service\Command\Factory\FactoryInterface``
  $factory Factory to add
$before
  `string|`Guzzle\Service\Command\Factory\FactoryInterface``
  $before Insert the new command factory before a command factory class or object matching a class name.

#### Returns

``Guzzle\Service\Command\Factory\CompositeFactory``
# `public boolean`
`has( `Guzzle\Service\Command\Factory\FactoryInterface`|string $factory )`

Check if the chain contains a specific command factory

#### Parameters

$factory
  ``Guzzle\Service\Command\Factory\FactoryInterface`|string`
  $factory Factory to check

#### Returns

`boolean`
# `public `Guzzle\Service\Command\Factory\CompositeFactory``
`remove( string|`Guzzle\Service\Command\Factory\FactoryInterface` $factory = null )`

Remove a specific command factory from the chain

#### Parameters

$factory
  `string|`Guzzle\Service\Command\Factory\FactoryInterface``
  $factory Factory to remove by name or instance

#### Returns

``Guzzle\Service\Command\Factory\CompositeFactory``
# `public null|`Guzzle\Service\Command\Factory\FactoryInterface``
`find( string|`Guzzle\Service\Command\Factory\FactoryInterface` $factory )`

Get a command factory by class name

#### Parameters

$factory
  `string|`Guzzle\Service\Command\Factory\FactoryInterface``
  $factory Command factory class or instance

#### Returns

`null|`Guzzle\Service\Command\Factory\FactoryInterface``
# `public `Guzzle\Service\Command\CommandInterface``
`factory( string $name, array $args = array() )`

Create a command using the associated command factories

#### Parameters

$name
  `string`
  $name Name of the command
$args
  `array`
  $args Command arguments

#### Returns

``Guzzle\Service\Command\CommandInterface``

#### Implementation of

`Guzzle\Service\Command\Factory\FactoryInterface::factory()`
# `public`
`count( )`

#### Implementation of

`Countable::count()`
# `public`
`getIterator( )`

#### Implementation of

`IteratorAggregate::getIterator()`

### Magic methods summary

## Properties summary

`protected array` | $factories | # Array of command factories