WordPress at Your Fingertips
function is not described

Requests::get_transport() protected WP 1.0

Get a working transport

{} It's a method of the class: Requests{}

No Hooks.

Return

Requests_Transport.

Usage

$result = Requests::get_transport( $capabilities );
$capabilities **
-
Default: array()

Code of Requests::get_transport() WP 5.8.2

protected static function get_transport($capabilities = array()) {
	// Caching code, don't bother testing coverage
	// @codeCoverageIgnoreStart
	// array of capabilities as a string to be used as an array key
	ksort($capabilities);
	$cap_string = serialize($capabilities);

	// Don't search for a transport if it's already been done for these $capabilities
	if (isset(self::$transport[$cap_string]) && self::$transport[$cap_string] !== null) {
		$class = self::$transport[$cap_string];
		return new $class();
	}
	// @codeCoverageIgnoreEnd

	if (empty(self::$transports)) {
		self::$transports = array(
			'Requests_Transport_cURL',
			'Requests_Transport_fsockopen',
		);
	}

	// Find us a working transport
	foreach (self::$transports as $class) {
		if (!class_exists($class)) {
			continue;
		}

		$result = call_user_func(array($class, 'test'), $capabilities);
		if ($result) {
			self::$transport[$cap_string] = $class;
			break;
		}
	}
	if (self::$transport[$cap_string] === null) {
		throw new Requests_Exception('No working transports found', 'notransport', self::$transports);
	}

	$class = self::$transport[$cap_string];
	return new $class();
}