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

# Class ServiceBuilder

Class that holds an event dispatcher

Clients and data can be set, retrieved, and removed by accessing the service builder like an associative array.

  Guzzle\Common\AbstractHasDispatcher implements Guzzle\Common\HasDispatcherInterface
  Guzzle\Service\Builder\ServiceBuilder implements Guzzle\Service\Builder\ServiceBuilderInterface, ArrayAccess, Serializable

### Direct known subclasses

`Aws\Common\Aws`

Namespace: Guzzle\Service\Builder
Located at Guzzle/Service/Builder/ServiceBuilder.php

## Methods summary

- `public static` `factory ( array|string $config = null, array $globalParameters = array() )`

  Create a new ServiceBuilder using configuration data sourced from an array, .js|.json or .php file.

- `public` `__construct ( array $serviceBuilderConfig = array() )`
- `public static` `getAllEvents ( )`

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

- `public` `unserialize ( mixed $serialized )`
- `public` `serialize ( )`
- `public` `addGlobalPlugin ( Symfony\Component\EventDispatcher\EventSubscriberInterface $plugin )`

  Attach a plugin to every client created by the builder

- `public` `getData ( string $name )`

  Get data from the service builder without triggering the building of a service

- `public` `get ( string $name, bool|array $throwAway = false )`

  Get a ClientInterface object or arbitrary data from the service builder

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

  Register a service or arbitrary data by name with the service builder

- `public` `offsetSet ( mixed $offset, mixed $value )`
- `public` `offsetUnset ( mixed $offset )`
- `public` `offsetExists ( mixed $offset )`
- `public` `offsetGet ( mixed $offset )`

## Methods detail

# `public static `Guzzle\Service\Builder\ServiceBuilderInterface``
`factory( array|string $config = null, array $globalParameters = array() )`

Create a new ServiceBuilder using configuration data sourced from an array, .js|.json or .php file.

#### Parameters

$config
  `array|string`
  $config The full path to an .json|.js or .php file, or an associative array
$globalParameters
  `array`
  $globalParameters Array of global parameters to pass to every service as it is instantiated.

#### Returns

``Guzzle\Service\Builder\ServiceBuilderInterface``

#### Throws

``Guzzle\Service\Exception\ServiceBuilderException``
if a file cannot be opened
``Guzzle\Service\Exception\ServiceNotFoundException``
when trying to extend a missing client
# `public`
`__construct( array $serviceBuilderConfig = array() )`

#### Parameters

$serviceBuilderConfig
  `array`
  $serviceBuilderConfig Service configuration settings: - name: Name of the service - class: Client class to instantiate using a factory method - params: array of key value pair configuration settings for the builder

# `public static array`
`getAllEvents( )`

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

#### Returns

`array`

#### Overrides

`Guzzle\Common\AbstractHasDispatcher::getAllEvents`
# `public`
`unserialize( mixed $serialized )`

#### Implementation of

`Serializable::unserialize()`
# `public`
`serialize( )`

#### Implementation of

`Serializable::serialize()`
# `public `Guzzle\Service\Builder\ServiceBuilder``
`addGlobalPlugin( Symfony\Component\EventDispatcher\EventSubscriberInterface $plugin )`

Attach a plugin to every client created by the builder

#### Parameters

$plugin
  `Symfony\Component\EventDispatcher\EventSubscriberInterface`
  $plugin Plugin to attach to each client

#### Returns

``Guzzle\Service\Builder\ServiceBuilder``
# `public array|null`
`getData( string $name )`

Get data from the service builder without triggering the building of a service

#### Parameters

$name
  `string`
  $name Name of the service to retrieve

#### Returns

`array|null`
# `public `Guzzle\Service\ClientInterface`|mixed`
`get( string $name, boolean|array $throwAway = false )`

Get a ClientInterface object or arbitrary data from the service builder

#### Parameters

$name
  `string`
  $name Name of the registered service or data to retrieve
$throwAway
  `boolean|array`
  $throwAway Only pertains to retrieving client objects built using a configuration array. Set to TRUE to not store the client for later retrieval from the ServiceBuilder. If an array is specified, that data will overwrite the configured params of the client if the client implements `Guzzle\Common\FromConfigInterface` and will not store the client for later retrieval.

#### Returns

``Guzzle\Service\ClientInterface`|mixed`

#### Throws

``Guzzle\Service\Exception\ServiceNotFoundException``
when a client or data cannot be found by the given name

#### Implementation of

`Guzzle\Service\Builder\ServiceBuilderInterface::get()`
# `public `Guzzle\Service\Builder\ServiceBuilderInterface``
`set( string $key, mixed $service )`

Register a service or arbitrary data by name with the service builder

#### Parameters

$key
  `string`
  $key Name of the client or data to register
$service
  `mixed`
  $service Client configuration array or arbitrary data to register. The client configuration array must include a 'class' (string) and 'params' (array) key.

#### Returns

``Guzzle\Service\Builder\ServiceBuilderInterface``

#### Implementation of

`Guzzle\Service\Builder\ServiceBuilderInterface::set()`
# `public`
`offsetSet( mixed $offset, mixed $value )`

#### Implementation of

`ArrayAccess::offsetSet()`
# `public`
`offsetUnset( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetUnset()`
# `public`
`offsetExists( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetExists()`
# `public`
`offsetGet( mixed $offset )`

#### Implementation of

`ArrayAccess::offsetGet()`

### Methods inherited from Guzzle\Common\AbstractHasDispatcher

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

### Magic methods summary

## Properties summary

`protected array` | $builderConfig | # Service builder configuration data
`protected array` | $clients | # Instantiated client objects
`protected static `Guzzle\Service\Builder\ServiceBuilderLoader`` | $cachedFactory | # Cached instance of the service builder loader
`protected array` | $plugins | # Plugins to attach to each client created by the service builder

### Properties inherited from Guzzle\Common\AbstractHasDispatcher

`$eventDispatcher`