/**
* Constructor.
*
* @param array|\ArrayAccess $options Client options array. If the registry contains any headers.* elements,
* these will be added to the request headers.
* @param FrameworkTransportInterface $transport The HTTP transport object.
*
* @since 1.7.3
* @throws \InvalidArgumentException
*/
public function __construct($options = [], FrameworkTransportInterface $transport = null)
{
if (!\is_array($options) && !$options instanceof \ArrayAccess) {
throw new \InvalidArgumentException('The options param must be an array or implement the ArrayAccess interface.');
}
$this->options = $options;
if (!isset($transport)) {
$transport = HttpFactory::getAvailableDriver($this->options);
}
// Ensure the transport is a framework TransportInterface instance or bail out
if (!$transport instanceof FrameworkTransportInterface) {
throw new \InvalidArgumentException('A valid TransportInterface object was not set.');
}
$this->transport = $transport;
}