class Discovery
Hierarchy
- class \OpenTelemetry\SDK\Common\Http\Psr\Client\Discovery
Expanded class hierarchy of Discovery
1 file declares its use of Discovery
- PsrTransportFactory.php in vendor/
open-telemetry/ sdk/ Common/ Export/ Http/ PsrTransportFactory.php
1 string reference to 'Discovery'
- PluginManagerInspectionRule::isYamlDiscovery in vendor/
mglaman/ phpstan-drupal/ src/ Rules/ Classes/ PluginManagerInspectionRule.php
File
-
vendor/
open-telemetry/ sdk/ Common/ Http/ Psr/ Client/ Discovery.php, line 16
Namespace
OpenTelemetry\SDK\Common\Http\Psr\ClientView source
class Discovery {
private static ?array $discoverers;
/**
* @var list<class-string<DiscoveryInterface>>
*/
private const DEFAULTS = [
Guzzle::class,
Symfony::class,
Buzz::class,
CurlClient::class,
];
/**
* Attempt discovery of a configurable psr-18 http client, falling back to Psr18ClientDiscovery.
*/
public static function find(array $options = []) : ClientInterface {
$options = array_filter($options);
foreach (self::discoverers() as $clientDiscovery) {
/** @var DiscoveryInterface $clientDiscovery */
if ($clientDiscovery->available()) {
return $clientDiscovery->create($options);
}
}
return Psr18ClientDiscovery::find();
}
/**
* @internal
*/
public static function setDiscoverers(array $discoverers) : void {
self::$discoverers = $discoverers;
}
/**
* @internal
*/
public static function reset() : void {
self::$discoverers = null;
}
private static function discoverers() : Generator {
foreach (self::$discoverers ?? self::DEFAULTS as $discoverer) {
if (is_string($discoverer)) {
(yield new $discoverer());
}
else {
(yield $discoverer);
}
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Discovery::$discoverers | private static | property | |
Discovery::DEFAULTS | private | constant | |
Discovery::discoverers | private static | function | |
Discovery::find | public static | function | Attempt discovery of a configurable psr-18 http client, falling back to Psr18ClientDiscovery. |
Discovery::reset | public static | function | @internal |
Discovery::setDiscoverers | public static | function | @internal |