Back to HttpFactory class

Method getAvailableDriver

public static \Joomla\Http\TransportInterface|bool
getAvailableDriver
(mixed $options = [], mixed $default = null)
Finds an available http transport object for communication
Parameters
  • array|\ArrayAccess $options Options for creating TransportInterface object
  • array|string $default Adapter (string) or queue of adapters (array) to use
Returns
  • \Joomla\Http\TransportInterface|bool Interface sub-class or boolean false if no adapters are available
Since
  • 3.0.0
Class: HttpFactory
Project: Joomla

Method getAvailableDriver - Source code

/**
 * Finds an available http transport 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   3.0.0
 */
public static function getAvailableDriver($options = [], $default = null)
{
    if (\is_null($default)) {
        $availableAdapters = static::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 = __NAMESPACE__ . '\\Transport\\' . ucfirst($adapter) . 'Transport';
        if (!class_exists($class)) {
            $class = 'JHttpTransport' . ucfirst($adapter);
        }
        if (class_exists($class) && $class::isSupported()) {
            return new $class($options);
        }
    }
    return false;
}