public static function getAvailableDriver($options = array(), $default = null)
	{
		if (!\is_array($options) && !($options instanceof \ArrayAccess))
		{
			throw new \InvalidArgumentException(
				'The options param must be an array or implement the ArrayAccess interface.'
			);
		}

		if ($default === null)
		{
			$availableAdapters = self::getHttpTransports();
		}
		else
		{
			settype($default, 'array');
			$availableAdapters = $default;
		}

		// Check if there is at least one available http transport adapter
		if (!\count($availableAdapters))
		{
			return false;
		}

		foreach ($availableAdapters as $adapter)
		{
			/** @var  $class  TransportInterface */
			$class = 'Joomla\\Http\\Transport\\' . ucfirst($adapter);

			if (class_exists($class))
			{
				if ($class::isSupported())
				{
					return new $class($options);
				}
			}
		}

		return false;
	}
public static function getAvailableDriver($options = array(), $default = null)
	{
		if (!\is_array($options) && !($options instanceof \ArrayAccess))
		{
			throw new \InvalidArgumentException(
				'The options param must be an array or implement the ArrayAccess interface.'
			);
		}

		if ($default === null)
		{
			$availableAdapters = self::getHttpTransports();
		}
		else
		{
			settype($default, 'array');
			$availableAdapters = $default;
		}

		// Check if there is at least one available http transport adapter
		if (!\count($availableAdapters))
		{
			return false;
		}

		foreach ($availableAdapters as $adapter)
		{
			/** @var  $class  TransportInterface */
			$class = 'Joomla\\Http\\Transport\\' . ucfirst($adapter);

			if (class_exists($class))
			{
				if ($class::isSupported())
				{
					return new $class($options);
				}
			}
		}

		return false;
	}
public static function getAvailableDriver ( $ options = array ( ) , $ default = null ) { if ( ! \ is_array ( $ options ) && ! ( $ options instanceof \ ArrayAccess ) ) { throw new \ InvalidArgumentException ( 'The options param must be an array or implement the ArrayAccess interface.' ) ; } if ( $ default === null ) { $ availableAdapters = self :: getHttpTransports ( ) ; } else { settype ( $ default , 'array' ) ; $ availableAdapters = $ default ; } // Check if there is at least one available http transport adapter if ( ! \ count ( $ availableAdapters ) ) { return false ; } foreach ( $ availableAdapters as $ adapter ) { /** @var  $class  TransportInterface */ $ class = 'Joomla\\Http\\Transport\\' . ucfirst ( $ adapter ) ; if ( class_exists ( $ class ) ) { if ( $ class :: isSupported ( ) ) { return new $ class ( $ options ) ; } } } return false ; }
Finds an available TransportInterface object for communication

@param   array|\ArrayAccess  $options  Options for creating TransportInterface object
@param   array|string        $default  Adapter (string) or queue of adapters (array) to use

@return  TransportInterface|boolean  Interface sub-class or boolean false if no adapters are available

@since   1.0
@throws  \InvalidArgumentException
Finds an available TransportInterface object for communication