Requests::get_transport_class( $capabilities = array() ): string

In this article

Get the fully qualified class name (FQCN) for a working transport.

Parameters

bool> $capabilities Optional. Associative array of capabilities to test against, i.e. [<capability> => true].

Return

string FQCN of the transport to use, or an empty string if no transport was found which provided the requested capabilities.

Source

protected static function get_transport_class(array $capabilities = []) {
	// 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])) {
		return self::$transport[$cap_string];
	}

	// Ensure we will not run this same check again later on.
	self::$transport[$cap_string] = '';
	// @codeCoverageIgnoreEnd

	if (empty(self::$transports)) {
		self::$transports = self::DEFAULT_TRANSPORTS;
	}

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

		$result = $class::test($capabilities);
		if ($result === true) {
			self::$transport[$cap_string] = $class;
			break;
		}
	}

	return self::$transport[$cap_string];
}

User Contributed Notes

You must log in before being able to contribute a note or feedback.